ActionScript 學習筆記(入門)

poplarbbs發表於2009-09-15

    最近轉學AS3,將所學知識整理一下。由於我是學Java的,所以著重點都是跟Java的對比。

 

 


宣告方式

public static var varName:Class = new Class();//普通變數
public static const varName:Class = new Class();//常量
var varName:*;//任何型別
var varName;//無型別變數,應該是as2遺留下來的

 

數字

  • int 與 Java 中的 Integer 相同
  • uint 無符號,只有正數,同樣是32位,最大值比int多一倍。專門用來表示包含alpha通道的顏色:0xFFFFFFFF
  • Number 相當於 Java 的 Double。此處需要注意:連續的浮點數相加無法得到整數,相差太多的浮點數相加可能忽略掉小值。

 

型別預設值

  • Number NaN 注意NaN不等於任何東西,包括自己。只能用用工具方法判斷。
  • * undefined


運算子
     運算子本身是一種特殊的函式,運算物件相當於引數。

  • == 和 === 前者對比前先進行型別轉換,後者不進行型別轉換。Array中的 indexOf就是 ===。
  • != 和 !== 同上
  • is 判斷型別,一般與 as 同用:if( var1 is Number) var1 as Number;
  • in 相當於 Java 中的 contains


Array
     相當於 Java 中的 ArrayList。更加神奇的是,它既是棧又是佇列。

  • push 從末尾增加一個物件
  • unshift 從頭增加一個物件
  • pop 從末尾刪除一個物件並返回
  • shift 從頭刪除一個物件並返回
  • splice(起點索引,刪除數量,插入元素集合) 刪除和插入元素,類似Python切片,起點可以為負值。
  • slice(起點索引,終點索引) 僅僅返回所選範圍,其他同上。
  • concat 相當於 Java 中的 addAll 方法


超強的Function
     兩種宣告方式:

public function functionName():void{};
public var function = function() {}

function 是物件,繼承 Object。所以可以閉包,還可以放在陣列裡面。

function 可以遊離於 Class 之外,所以會有“全域性函式”一說。

function 引數有預設值,有可變陣列引數。可以說怎麼方便怎麼來,如此便有了千變萬化的用法。

function 也是動態類,可以自行新增屬性。

AS3 中方法的引數是引用傳遞。

 

Object 的新用法
     在 AS3 中 Object 除了作為基類還有一種用法—— Map。
用法:

value = obj[“key”];
for (var key in obj) {};
for each( var value in obj){}

 

密封類/動態類
     密封類可以理解為Java中的類,無法動態新增屬性等。而相對的可以用 dynamic宣告動態類。動態類內涵雜湊表,可以理解為 Java 中的 Map<String, Object>。 目前我所知道的動態類只有 MovieClip。一般用於 Flash 中給 MC 新增子元素的時候動態增加 name 屬性之用。此處可以善加利用。

 

AS3編輯及執行機理
     AS3執行前需要先編譯成ActionScript bytecode(ABC)檔案。ABC必須在SWF檔案中才能執行。Flash中 會將每一個 MovieClip 當作一個as檔案,進行編譯。所以如果 MC 沒有繫結 as 的話編譯時會自動生成一個同名 as 。Flex中的 mxml 在編譯過程中會先編譯成 as,進而編譯成 ABC。 fla 中還可以包含資源以及外部資源連結。


文件類
     文件類相當於Java中的 main 方法所在的類,是程式的入口。as程式碼有兩個地方可以寫,一個是時間軸上的關鍵幀,另一個是 as 檔案。此處的文件類就是 as 檔案的形式,應該儘量使用這種形式。

 

 

相關文章