在腳本中控制流向
ActionScript使用if、for、while、do...while和for...in動作,依據某個條件是否存在執行某個動作。
壹、使用“if”語句
檢查壹個條件是真或假(true 或false)的語句以if 開頭。如果條件存在,ActionScript執行接下來的語句。如果條件不存在,ActionScript跳轉到本代碼塊以外的下壹語句。
要優化妳的代碼的性能,首先檢查最有可能存在的條件。
下面的語句測試幾個條件。 else if 指定如果前面的條件是假(false)時可選的測試。
if ((pass == null) (email == null)){ gotoAndStop("reject");} else { gotoAndPlay("startMovie");}
二、重復執行動作
ActionScript可以重復執行動作,可以按指定次數重復執行,或指定條件存在時重復執行。在ActionScript中,使用while、do...while、for和for...in動作創建循環。
1.當條件存在時重復執行動作
使用 while 語句實現。while循環先計算壹個表達式,當表達式的值為真(true)時,執行循環體中的代碼。在循環體中的每個語句被執行後,再次計算表達式。 在下面的例子中,循環執行4次:
i = 4while (i $#@62; 0) { myMC.duplicateMovieClip("newMC" + i, i ); i --; }
也可以使用do...while語句創建與while循環同類的循環。在do...while循環中,表達式的計算在代碼塊底部進行,因而該種循環至少運行壹次,如下所示:
i = 4do { myMC.duplicateMovieClip("newMC" +i, i ); i --; } while (i $#@62; 0);
2.使用內建計數器重復執行動作
使用 for 語句實現。大多數循環使用某種計數器控制循環運行的次數。可以先聲明壹個變量,然後寫壹個語句,在每次執行循環之後增加或減少該變量的值。在for動作中,計數器和增加計數器的語句是該動作的組成部分,如下所示:
for (i = 4; i $#@62; 0; i--){
myMC.duplicateMovieClip("newMC" + i, i + 10);
}
3.要循環處理電影剪輯或對象的子項
使用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);
}
}
註:for..in語句重復處理對象原型鏈中的對象屬性。如果子對象的原型是parent,for..in也將重復處理parent的屬性。