Flash 動(dòng)作腳本之:資料速查(10)_Flash教程
推薦:Flash 動(dòng)作腳本之:資料速查(9)在腳本中控制流向在腳本中控制流向ActionScript使用if、for、while、do...while和for...in動(dòng)作,依據(jù)某個(gè)條件是否存在執(zhí)行某個(gè)動(dòng)作。一、使用“if”語句檢
使用自定義對(duì)象Flash 5答應(yīng)用戶自定義函數(shù)來執(zhí)行一系列語句,對(duì)傳遞過來的值進(jìn)行操作,并可返回值。函數(shù)定義好以后,就可以從任何時(shí)間軸(包括載入動(dòng)畫的時(shí)間軸)調(diào)用它。
可以把函數(shù)想像為一個(gè)“黑箱”。調(diào)用函數(shù)時(shí)給它提供輸入(參數(shù)),它執(zhí)行某些操作后產(chǎn)生輸出(返回值)。 在自定義函數(shù)中,最好對(duì)它的輸入、輸出和用途作具體的注釋,使用戶易于理解和使用。
一、定義函數(shù)
象變量一樣,函數(shù)是附屬于定義它的電影剪輯的。當(dāng)一個(gè)函數(shù)被重新定義時(shí),新的定義取代舊的定義。要定義一個(gè)函數(shù),使用function動(dòng)作,后跟一個(gè)函數(shù)名、要傳遞給函數(shù)的參數(shù)和指出該函數(shù)做什么的ActionScript語句。
下面是一個(gè)稱為Circle的函數(shù),有一個(gè)參數(shù)radius :
function Circle(radius) {
this.radius = radius;
this.area = Math.PI * radius * radius;
}注:用于函數(shù)體內(nèi)的要害字this是對(duì)函數(shù)所屬電影剪輯的引用。 也可以通過創(chuàng)建函數(shù)常量來定義函數(shù)。函數(shù)常量是指在表達(dá)式中而不是在語句中聲明的不命名的函數(shù)�?梢杂煤瘮�(shù)常量定義函數(shù),返回它的值,把它賦給表達(dá)式中的變量,如下所示:
area = (function () {return Math.PI * radius *radius;})(5);二、給函數(shù)傳遞參數(shù) 參數(shù)是函數(shù)代碼處理的元素。例如,下面的函數(shù)有兩個(gè)參數(shù)
initials和finalScore : function fillOutScorecard(initials, finalScore) {
scorecard.display = initials;
scorecard.score = finalScore;
} 當(dāng)這個(gè)函數(shù)被調(diào)用時(shí),必須把它要求的參數(shù)傳遞給它。該函數(shù)用傳遞過來的值取代函數(shù)定義中的參數(shù)。在本例中,scorecard是一個(gè)電影剪輯的實(shí)例名;display和score是實(shí)例中的輸入文本域。下面的函數(shù)調(diào)用把值"JEB"賦給變量display ,把值45000賦給變量score : fillOutScorecard("JEB", 45000);
函數(shù)fillOutScorecard中的參數(shù)initials類似于局部變量。該函數(shù)被調(diào)用時(shí)它存在,退出函數(shù)時(shí)它消失。假如調(diào)用函數(shù)時(shí)省略了參數(shù),省略了的參數(shù)以undefined傳遞。假如在調(diào)用函數(shù)時(shí)提供了函數(shù)定義中并不要求的多余參數(shù),這些多余? 數(shù)被忽略。
三、在函數(shù)中使用局部變量
局部變量是組織代碼并使代碼易于理解的重要工具。當(dāng)一個(gè)函數(shù)使用局部變量時(shí),它可以隱藏它的變量,使本動(dòng)畫的其它腳本不能訪問。 局部變量的作用范圍局限在本函數(shù)體內(nèi),并在退出函數(shù)時(shí)消失。傳遞給函數(shù)的任何參數(shù)均作為局部變量處理。
注:假如在函數(shù)中修改全局變量,請(qǐng)使用腳本注釋說明這些修改。
四、從函數(shù)中返回值
你可以用return動(dòng)作從函數(shù)中返回值。return動(dòng)作終止函數(shù),并用return動(dòng)作的值取代它。假如Flash在函數(shù)結(jié)束前沒有碰到return動(dòng)作,將返回空字符串。例如,下面的函數(shù)返回參數(shù)x的平方:
function sqr(x) {
return x * x;
}
有些函數(shù)完成一系列任務(wù),但不返回值。例如,下面的函數(shù)初始化一系列的全局變量:
function initialize() {
boat_x = _root.boat._x;
boat_y = _root.boat._y;
car_x = _root.car._x;
car_y = _root.car._y;
}
五、調(diào)用函數(shù)
在正常模式的動(dòng)作面板中調(diào)用函數(shù),使用evaluate動(dòng)作,用圓括號(hào)傳遞要求的參數(shù)。 你可以從任何時(shí)間軸(包括載入的動(dòng)畫)調(diào)用任何時(shí)間軸中的函數(shù)。例如,下面的語句調(diào)用主時(shí)間軸中的電影剪輯MathLib的函數(shù)sqr,傳遞一個(gè)參數(shù)3,并把結(jié)果存儲(chǔ)在變量temp中:
var temp = _root.MathLib.sqr(3);
在Flash 4中,要模擬調(diào)用函數(shù),你可以在動(dòng)畫結(jié)束后的某一幀中編寫腳本, 然后通過把該幀的標(biāo)簽名傳遞給call動(dòng)作來調(diào)用它:
call("initialize");
這種腳本并非一個(gè)真正的函數(shù),因?yàn)樗荒芙邮諈?shù),也不能返回值。盡管call動(dòng)作在Flash 5中仍然有效,但建議不再使用。
分享:Flash 動(dòng)作腳本之:資料速查(8)使用操作符處理表達(dá)式中的值(2)七、位操作符位操作符在內(nèi)部處理浮點(diǎn)數(shù),把它們變?yōu)楦子谔幚淼?2位整數(shù)。精確的位操作的完成取決于操作符,但所有的位操作
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Flash 動(dòng)作腳本之:資料速查(10)
。