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