间隔和超时

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 对象执行 setIntervalsetTimeout 的两个事件,使用 0 或 1 表示 repeatCount 属性,0 表示无限重复,1 表示一个。