2014-08-29 79 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);