作者:fbysss
msn:jameslastchina@hotmail.com
blog:blog.csdn.net/fbysss
聲明:本文由fbysss原創,轉載請註明出處
關鍵字:AS3,ActionScript
引言:
如果有java、javascript基礎,AS文法很好理解,有一個上午足夠。看了本文,基本可編寫代碼調試。
1. 開發工具
FlashBuilder。建立一個【ActionScript】項目,會自動產生一個as檔案,可以直接在裡面寫代碼測試。
從結構上看,這個檔案是一個類,與java文法類似。
2. AS文法
var 關鍵字定義,trace輸出
變數定義:
var i :int = 100;
trace(“i=”+i);
數組
var myArray:Array=(1,2,3);
trace(“myArray[0] is :”+myArray[0]);
對象:
var person:Object =- {name:”fbysss”,title:”manager”,gender:”male”};
trace(“person.name:”+person.name);
加入方法
var person:Object =-
{name:”fbysss”,title:”manager”,gender:”male”,
sayHello:function():void{
trace(“hello,I am ”+person.name);//也可以使用 trace(“hello ,I am ”+person[“name”])
}
salary:function(){
return1000000)(;
}
};
person.sayHello();
trace(person.salary());
動態添加類屬性和方法
var person:Object={};
person.name=”fbysss”;
person.title=”manager”;
person.sayHello = function :void{
trace(“hello, I am ”+person.name);
}
各種類型預設值
如果沒有初始化,
int,unit :0
Number: NaN
String、Object:null
Boolean:false
沒有類型的定義如var i;或者var i:*; :undefined
in關鍵字
var sssArray:Array={1,2,3};
trace(“2 in sssArray:”+(2 in sssArray)); //true
trace(“2 in sssArray:”+(“2” in sssArray));//true
Function類型
函數運算式:
var sayHello: Function = function():void{
trace(“helloworld”);
}
sayHello();
顯然,sayHello必須在定義語句之後才能調用。
正常的函數定義,與javascript一致
訪問參數資訊
與javascript類似。為arguments對象
arguments.length 參數個數
arguments.callee 調用者
物件導向
這部分與java很像,不用多說
package 不是分號,而是花括弧。
事件機制
事件與方法的區別:
事件是偵聽,滿足一定條件才被觸發的;被動調用
方法隨時可能被調用;主動調用
事件的調用者與被調用者,可能不是一個進程,低耦合。
而方法調用則必須是一個進程之中,耦合性強。
3. 調試方法
F11
沒有main方法,可通過建構函式調試
4. 注意點
Number(“hello”) 輸出是 NaN
但Number(“hello”)==NaN永遠是false
如果要判斷,應該使用 if (Number(“hello”))的形式,類似javascript
switch 語句與javascript一樣,支援string類型。注意break。
Q:動態參數 ...rest?有什麼用?——這裡有一個疑問,因為as3和javascript一樣,直接就支援不定數量的參數,要這個何用?
A:在物件導向的AS3類裡面,可以理解為靜態語言,必須採用這樣的方式,才能支援動態參數(類似Java的動態參數做法)。
如果是動態定義的函數變數,不需要。
例:
public class Test(){
publicfunction dynamicParam(){
for(vari =0 ; i< params.length ; i++){
trace(params[i]);
}
}
publicfunction Test(){
dynamicParam(1,2,3);
}
}