作者cjoe (TeA)
看板Flash
標題[問題] addEventListener、迴圈、變數的問題
時間Mon Nov 16 12:33:55 2009
我的程式大概如下
for(i=0;i<3;i++)
{
var square:Sprite = new Sprite();
square.addEventListener(MouseEvent.CLICK, function(e:MouseEvent)
{
doSomething(argArray[i])
});
}
我的問題卡在當square發生click事件時,
要執行doSomething(argArray[i])這一句的時候
裡面的argArray[i]的i,永遠是不正確的(i=3)
我想請問該怎麼要讓參數可以"固定",讓我的程式讀到我要的值呢?
之前我用moveClip時,我可以設定mc.lol = argArray[i];(搭e.currentTarget用)
可是我現在用square.lol = argArray[i]會產生錯誤訊息 T_T
請問在FLASH中我該怎麼做才能解決這個問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.159.200
推 akkusativ:我通常是在迴圈外new一個變數讓他在迴圈內累加XD 11/16 12:58
推 pm2001:argArray[i]是指標阿迴圈跑完i會等於3阿 11/16 12:59
→ pm2001:函式裡面 var temp:int=i; doSomething(argArray[temp]); 11/16 13:00
推 akkusativ:喔喔 原來如此^^ 11/16 13:02
推 cjcat2266:這個問題好像很常見呢,精華區 3>7>3>1 11/16 13:27
→ cjoe:cjcat2266兄,謝謝你,我用你的方法解決問題了!! 11/16 18:18
→ cjoe:也謝謝各位的回答,謝謝你們 >"< 11/16 18:19