[問題] timer相關問題

作者: para123 (好心情,事才會做好)   2014-06-05 13:02:37
內文在下面:
for( i=1; i<=3; i++)
{
MyTimer[i] = setInterval( f_MyTimer, 1000);
}
function f_MyTimer()
{
var a : int = i;
trace(a);
}
我想產生的結果是:我製造三個timer,分別持續執行 trace 1、2、3,
但如果按照上面的寫法,結果會全部都 trace 3,
因為三個timer其實都是在1000豪秒後才開始執行第一次,
所以並不是呼叫的當下,就會把 a=1、a=2、a=3 儲存進去,
而是1秒後,三個timer才會執行 a=i ,那就是三個timer的a都等於3的意思。
請問有什麼方法可以解決,或是達到我的目的嗎?
setInterval呼叫的函數,是不是無法像一般函數給他一個引數?
作者: para123 (好心情,事才會做好)   2014-06-05 13:04:00
嗯…如果是for,剛出來的i應該是變4不是3,不過這不重要xD
作者: cjcat2266 (CJ Cat)   2014-06-05 13:44:00
關鍵字 delegate
作者: scars (scars)   2014-06-07 03:57:00
前面沒看 針對最後一行回答 是可以的 http://goo.gl/Te1OGl
作者: para123 (好心情,事才會做好)   2014-06-09 16:21:00
感謝兩位大大回覆

Links booklink

Contact Us: admin [ a t ] ucptt.com