基本語法與javascript相同,因為as2.0基於ECMA-262規範,而這個規範是Javascript的國際標準,所以可想而知,他們之間是會有多大的相似.
不過as2.0開始要求強制類型,當然也支持非強制類型,不過在某些情況下會出現編譯錯誤.如
var a="Lolo";a=12;將會報錯.可以用a=Sting(12)來表達.
正確的強制類型定義如下:
變量 var a:String="Lolo";
傳入參數
function welcome(firstName:String, age:Number){}
返回參數
function square(x:Number):Number {
var squared = x*x;
return squared;
}
對象類型指定
var student:Student = new Student();
確定某對象的類型用typeof(variableName)
1.區分大小寫
2.使用分好進行語句的分隔,當然也可不用
3.使用大擴號對代碼塊進行分割,如在類定義,方法定義,以及if等.
4.注釋單行採用”//”,多行採用”/*.....*/”
5.數據類型有字符串(String),數字(Number,浮點值),布爾值(Boolean,true&false),對象(Object),影片剪輯(MovieClip),Null(值為null,沒有值存在),Undefined(值為undefined,即不確定的類型)
其中影片剪輯是as中唯一可以圖形元素的數據類型。MovieClip 數據類型允許您使用 MovieClip 類的方法控制影片剪輯元件。可以使用點 (.) 運算符調用這些方法,如下所示:
var my_mc:MovieClip=new MovieClip();
var parent_mc:MovieClip=new MovieClip();
my_mc.startDrag(true);
parent_mc.getURL("http://www.macromedia.com/support/" + product);
類型轉換Array(),Boolean(),Object(),String(),MovieClip()
另外還有原始數據類型(例如, Boolean、Date 和 Number)
6.賦值用”=”,比較用”==”,邏輯與”&&”,邏輯或”||”,”<= ”小於或等於,”>= ”大於或等於,”!=”不等於
7.變量有三種,本地變量,時間軸變量,全局變量
全局變量(_global.變量名)
var _global.myName = "George"; // 語法錯誤,在定義全局變量是不能用var,另外也不能在此強制指定類型
_global.myName = "George";
8.點運算符和數組訪問運算符
對象rocket 中的同一個變量 velocity:
rocket.velocity;
rocket["velocity"];
數組var name:Array=new Array()
name[0]=”dfds”
var a:String=name[0]
通過構建一個其中的元素也是數組的數組,可以在動作腳本中創建多維數組。若要訪問多維數組
的元素,可以將數組訪問運算符進行自我嵌套,如下例所示:
var chessboard = new Array();
for (var i=0; i<8; i++) {
chessboard.push(new Array(8));
}
function getContentsOfSquare(row, column){
chessboard[row][column];
}
9邏輯控制
>if
if (password == null || email == null) {
gotoAndStop("reject");
} else if (password == userID){
gotoAndPlay("startMovie");
}
>while
i = 4;
while (var i > 0) {
my_mc.duplicateMovieClip("newMC" +i, i );
i--;
}
>do...while
i = 4;
do {
my_mc.duplicateMovieClip("newMC" +i, i );
i--;
} while (var i > 0);
>for
for (var i = 4; i > 0; i--){
myMC.duplicateMovieClip("newMC" + i, i + 10);
}
>for..in
子級包括其它影片剪輯、函數、對像和變量。下面的示例使用 trace 語句在「輸出」面板中顯
示其結果:
myObject = { name:'Joe', age:25, city:'San Francisco' };
for (propertyName in myObject) {
trace("myObject has the property:" + propertyName + ", with the value:" +
myObject[propertyName]);
}
本示例將輸出如下結果:
myObject has the property:name, with the value:Joe
myObject has the property:age, with the value: 25
myObject has the property:city, with the value:San Francisco
您可能想讓腳本重複特定的子級類型,例如只重複影片剪輯子級。將 for..in 與 typeof 運算符
配合使用即可實現此目的。
for (name in myMovieClip) {
if (typeof (myMovieClip[name]) == "movieclip") {
trace("I have a movie clip child named " + name);
}
}
10.如需要在script中使用一些特殊符號,如<,>等,則應該在該語句前後加上
<![CDATA[和]]>將語句包括起來
詳細介紹可看FL_ActionScript_Ref.pdf,這個好像就是隨附在flash mx pro 2004的下載包里,中文版本包內是簡體穩檔.