2014-08-29 42 views
0

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

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

有人能说出上述代码的工作原理吗?

感谢 DK

+0

setInterval方法只会延迟调用你的函数。下面的解释... – helloflash 2014-09-02 16:41:39

回答

0

setInterval方法只有一个延迟调用你的函数。

代码调用anonymouslysetInterval方法的第一个参数的功能,但这种功能也被其称为是变量名完全相同的结果:

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

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

如果我们创建一个假的setInterval fonction像以下:

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