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
答案 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);