間隔和超時
import flash.utils.*;
var intervalId:uint=setInterval(schroedingerCat,1000);
// execute a function once per second and gather interval ID
trace("Cat's been closed in the box.");
function schroedingerCat():void {
if (Math.random()<0.04) {
clearInterval(intervalId); // stop repeating by ID
trace("Cat's dead.");
return;
}
trace("Cat's still alive...");
}
var bombId:uint;
function plantBomb(seconds:Number):uint {
trace("The bomb has been planted, and will blow in "+seconds.toFixed(3)+" seconds!");
var id:uint=setTimeout(boom,seconds*1000); // parameter is in milliseconds
return id;
}
function defuseBomb(id:uint):void {
clearTimeout(id);
trace("Bomb with id",id,"defused!");
}
function boom():void {
trace("BOOM!");
}
setInterval()
用於以指定的間隔非同步執行重複的任務。使用內部 Timer
物件,uint
型別的返回值是其內部 ID,你可以通過呼叫 clearInterval()
來訪問和停止重複。setTimeout()
和 clearTimeout()
的工作方式類似,但對提供的函式的呼叫只進行一次。你可以為兩個 set 函式提供其他引數,這些引數將按順序傳遞給函式。在編譯時不檢查引數的數量及其型別,因此,如果你提供一個奇怪的引數組合,或者需要它們並且不接收任何引數的函式,則會引發錯誤“錯誤#1063:引數計數不匹配”。
你可以使用常規 Timer
物件執行 setInterval
和 setTimeout
的兩個事件,使用 0 或 1 表示 repeatCount
屬性,0 表示無限重複,1 表示一個。