Flash as2在顺序代码中引入延迟

时间:2011-08-11 18:24:59

标签: flash actionscript-2

在我的flash项目中,我想在运行中的代码执行的操作之间引入小的延迟。

例如:

for(i=0; i<5; ++i) {
    someMovieClip[i]._visible = false;
    //One second of delay
}

是否有可能实现上述一秒延迟? (在AS2中)

2 个答案:

答案 0 :(得分:2)

您可以使用间隔来执行此操作而不是for循环。像这样:

var i:Number = 0;
var loops:Number = 5;
var intID:Number;

myFunction();

function myFunction() {
    someMovieClip[i]._visible = false;
    i++;
    if(intID == undefined) intID = setInterval(myFunction,1000);
    if(i == loops) clearInterval(intID);
}

第一次调用该函数后,会设置一个间隔,该间隔每秒再次调用该函数,直到满足清除间隔所需的条件为止。

请注意,这不会破坏调用myFunction()之后的任何剩余脚本的执行,因此如果您打算这样做,则应将所有后续代码放入一个单独的函数中以便在同一个函数中调用时间间隔被清除。

答案 1 :(得分:0)

这将有效 -

stop();

var interval:Number = setInterval(
function():Void {
    gotoAndPlay(1);
    clearInterval(interval);
},
1000
);