Flash AS學習:函數的定義和調用

來源:互聯網
上載者:User
函數

  示範效果:

點擊這裡下載源檔案

  有人將函數比喻成一個加工的機器,一個碾米機輸入的是稻穀,輸出的是大米;一個random(5)函數,輸入的是5,輸出的是0~4的任意一個;random()是FLASH本身內建的,我們可以自己定義一個這樣的加工的機器,這樣,輸入什麼,輸出什麼,就全由我們自己作主了。現在開始定義一個這樣的函數,只要我們輸入一個數,就輸出這個數的3倍的數。

function cont(n:Number){
trace(3*n)
}

  以上定義了一個函數,這個函數好比一個停放在這裡沒有使用的機器。先看看這個機器是幹什麼用的呢.function是AS中的規定,告訴我們,將要定義一個函數,cont是這個函數的名字,就好比加工的機器的名字;n是參數,就好比是要輸入到機器中的東西.trace(3*n)是這個函數要執行的內容,就好比機器將要把輸入的東西怎麼處理.現在我們可以開動這個機器了.跟著寫:
cont(5)這樣就表示執行函數了,為函數輸入一個數字5.
以上定義了一個簡單的函數.其實定義函數的主要目的是為了多次調用的方便,比如有很多按鈕上都要調用這個函數,並且要求輸入的參數不同,那麼用處就體現出來了.比如調用上面的函數cont:

on(press){
cont(6)//輸出18
}

on(press){
cont(7)//輸出21
}

on(press){
cont(8)//輸出24
}

  使用函數還有一個好處,就是可以設定間隔多少時間進行調用.例如我們要每間隔1秒調用以下上面的cont函數,可以這樣寫.
setInterval(cont,1000,5)//cont為函數名,1000為間隔時間,單位是毫秒,5就是參數.於是每隔1秒鐘就會調用一次cont函數,但我們如果希望該函數只調用10次就停止,該如何操作呢?完整AS如下:(請複製此AS進行測試)
function cont(n:Number) {
trace(3*n);
if(m==undefined){//由於沒有定義m,m在這裡只有第一次讀取符合條件,第二次之後,就直接進行++了
m=0
}
m++
if (m>=10) {
clearInterval(aa);//清除對setInterval的調用
}
}
aa=setInterval(cont,1000,5)  聯絡上節中的onEnterFram的用法,如果用函數間隔調用來處理,這樣寫:
var i:Number = 0;
function dup(max:Number) {
duplicateMovieClip("_root.bug", "bug"+i, i);
// 複製bug,bug的新ID分別是bug0 bug1 bug2...
_root["bug"+i]._x = random(400);
// 新的bug的座標分別是400內任意的數
_root["bug"+i]._y = random(400);
_root["bug"+i]._rotation = random(180);
// 新的bug的旋轉是180內任意的數,便於讓蟲子的頭朝向各個方向
i++;
// 由於bug新的ID不能相同,故需要i++
if (i>=max) {
// 如果複製的數量大於等於50
clearInterval(aa);
// delete this.onEnterFrame;
// 刪除此事件
}
trace(i);
// 跟蹤i,並且測試在沒有delete的情況下i的情況
}
aa = setInterval(dup, 500, 50);   這樣,複製的快慢就由我們自己任意控制了。

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。