Flash 動作腳本之:資料速查(10)_Flash教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦: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);
      二、給函數傳遞參數

        參數是函數代碼處理的元素。例如,下面的函數有兩個參數initialsfinalScore :
      function fillOutScorecard(initials, finalScore) {
      
      	scorecard.display = initials;
      
      	scorecard.score = finalScore;
      
      }
        當這個函數被調用時,必須把它要求的參數傳遞給它。該函數用傳遞過來的值取代函數定義中的參數。在本例中,scorecard是一個電影剪輯的實例名;displayscore是實例中的輸入文本域。下面的函數調用把值"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教程/更新時間:2008-03-05
      相關Flash教程