2011-11-08 52 views

回答

2

雖然這編譯沒有警告或錯誤,並且是有效的AS3,有聯合國需要的代碼。

setTimeout函數只運行一次函數。

另一方面,setInterval函數以指定的間隔運行函數,直到調用clearInterval。

clearTimeout用於停止已發生的超時事件。 由於超時只發生一次,因此無需在超時功能中將其清除。 如果您使用的是setInterval,那麼當不再需要調用該函數時,您需要clearInterval。

+0

如果將setTimeout與函數一起使用而不是如下所示的閉包,將需要調用clearTimeout: setTimeout(someFunction,2000); –

+0

Ahum ...「setTimeout函數只運行一次函數。」 所以不,它不會被要求,因爲它只運行一次。 – Creynders

+0

那麼clearTimeout只需要在觸發前停止一些事情呢? –

1

它有效嗎?是的。
它工作嗎?是的。
它有什麼意義嗎?編號

超時只執行一次。只有在超時已經完成後才能調用閉包。現在,如果您使用的是區間,那麼這是有道理的。

該方法的工作原理是因爲編譯器預先定義了所有這些局部變量,使它們可以自動訪問。基本上,它是這樣的:

var clearId:int; 
clearId = setInterval(function():void 
{ 
    clearInterval(clearId); 
}, 2000); 
相關問題