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