解释Flash AS2 setInterval函数

时间:2014-08-29 11:45:01

标签: flash actionscript-2

Plz帮助我理解这个简单的Flash AS2(动作脚本2.0)代码。在setInterval(function () {blah..},5*1000);行中,function()指的是setinterval(the calling function)本身或只是无名的函数。

function wait() {      
    stop();
    var myInterval = setInterval(function () {
        play();
        clearInterval(myInterval);
    }, 5*1000); // stop for 5 seconds
}
wait();

任何人都可以说出上述代码的工作原理吗?

由于 DK

1 个答案:

答案 0 :(得分:0)

setInterval方法只会延迟调用您的函数。

你的代码在anonymously方法的第一个参数中调用setInterval函数,但是这个函数也可以用它的变量名调用,结果完全相同:

stop();
var myInterval = setInterval(myFunction, 5000);

function myFunction():Void {
    play();
    clearInterval(myInterval);
}

如果我们创建一个伪setInterval函数,如下所示:

function myFunction():Void {
    trace('myFunction plays');
}

function pseudoSetInterval(func:Function, delay:Number):Void {
    this.onEnterFrame = function():Void {
        if (getTimer() > delay) {
            func();
            delete this.onEnterFrame;
        }
    }
}

这两个调用是等效的:

var myInterval = pseudoSetInterval(myFunction, 5000);
var myInterval = pseudoSetInterval(function(){trace("a function plays");}, 5000);