ActionScript3 基本語法

AS 3.0語言是基於ECMAScript規範的.正則表達式

(ECMA,European Computer Manufactures Association,歐洲計算機制造商協會)數組

在ECMAScript規範中,對象徹底是屬性的集合,app

這些屬性不單單是存儲的數據,也能夠是函數.(函數能夠當作變量,與JavaScript一致)函數

 

is和as操做符很好用,用於判斷對象的類型ui

is操做符,判斷變量的類型(is操做符返回的是一個布爾值)spa

例如:.net

var a:int;
trace(a is int);//true
trace(a is Object);//true,能夠是祖先類code

as操做符,判斷對象是否符合指定的數據類型,orm

若是是,返回這個對象,對象

不然返回null

(as操做符返回的是對象)

例如:

var a:int=3;
trace(a as int);//3
trace(a as String);//null

 

複雜數據類型complex data type:

Array,

Object,全部類的祖先

Date,日期時間

Error,異常

Function,函數

RegExp,正則表達式

XML,用於操做包含一個根節點的XML數據集

XMLList

 

特殊數據類型

*,用於告訴編譯器,將在後面設置變量的數據類型

void,在函數聲明中使用,表示函數不會返回任何數據

 

索引數組

arr[0]

關聯數組

var arr:Array=[];

arr["key1"]="value1";

arr["key2"]="value2";

for(var key:String in arr){

trace(key+":"+arr[key]);

}

for each(var value:String in arr){

trace(value);

}


另外一種形式

var obj:Object={

key1:"value1",

key2:"value2"

};
trace(obj.key1);//value1
trace(obj.["key2"]);//value2

比較操做符

==,!=,<,<=,>,>=

 

求反!

 

AS3不支持函數/方法的重載

不能在同必定義域內出現多個同名函數/方法

 

能夠不把腳本寫在MXML文件中,

能夠寫到一個as文件內,

而後在MXML中導入,

<mx:Script source="XXX.as"/>

 

Repeater,不可見組件,

可以迭代遍歷一組信息,在迭代同時,

動態建立組件.

 

PopUpMenuButton組件

image

 

在MXML文件內寫AS3腳本,要用<![CDATA[…]]>括起來

 

聲明變量,使用var關鍵字

var i:int;

var j:int=100;

var k;//聲明變量k,但未指定類型,k的值爲undefined,不推薦

var l:*;//效果同上行

 

變量命名:

駱駝命名法,首字母小寫,第二個及之後的單詞首字母大寫,

使用,」名詞」或」形容詞+名詞」,例如:

width,maxWidth

遵照min-length&&max-imormation原則

儘可能避免變量名中出現數字編號(除非邏輯上須要)

 

常量的定義,使用const關鍵字:

const PI:Number=3.1415

 

字符串的聲明和定義:

var str1:String;//null

var str2:String="";

var str3:String=new String();//效果同上行

var str4:String="abc";

var str5:String=new String("abc");//效果同上行

var str4:String='abc';//單引號也能夠,同JavaScript同樣

var str5:String='林峯';//Unicode

trace(str5.length);//2


轉義符,用斜杆\

回車:\r

換行:\n

製表:\t

斜杆:\\

雙引號:\"

 

數組的定義,

和Java不同,例如定義一個長度爲5的整型數組,

Java是:

int[]a=new int[5];

而AS3是:

var a:Array=new int(5);

而且AS3的數組是長度可變的,有push和pop等操做(和JavaScript相似).

幾種常見的定義形式以下:

var a:Array;//null

var b:Array=[];//空數組

var c:Array=new Array();//效果同上行

var d:Array=[1,2,3,4];

var e:Array=new Array(1,2,3,4);//效果同上行

var f:Array=new Array(5)//聲明一個長度爲5的數組,5個元素都是未定義

數組下標都是從0開始

多維數組:

var a1:Array=[[1,2],[3,4,5,6]];

//

var a2:Array=[];

a2[0]=[1,2];

a2[1]=[3,4]

trace(a2[0][1]);

 

==和===

==,會進行類型的轉換

而===,不會進行類型的裝換

var a:int=5;

var b:uint=5;

trace(a==b);//true

trace(a===b);//true

var c:String=」5」;

trace(a==c)//true

trace(a===c)//false


typeof,is,as

trace(typeof 10);//number

trace(10 is Number);//true

trace(10 as Number);//10

trace(10 as Array);//null

 

delete

用來刪除對象的動態實例屬性

var obj:Object={a:123};

trace(obj.a)//123

delete obj.a

trace(obj.a)//undefined


for 循環

var a:Array=[1,2,3,4];

for(var i:int=0;i<a.length;i++){

if(a[i]==3){

    break;

}else{

    continue;

}

}

 

for each in

var a:Array=[1,2,3];
    for each(var value:int in a){
        trace(value);
}

 

函數

function f1():void{
     trace("call f1()");
}

或者用相似定義變量的方式
var f2:Function=function():void{
      trace("call f2()")
};

f1();
f2();

//默認參數

function test(a:int=3,b:int=2,c:int =1):int{

return a+b+c;

}

trace(test(5));//8

 

//函數的arguments對象

arguments.length;

arguments[0];

相關文章
相關標籤/搜索