[問題] addEventListener、迴圈、變數的問題

看板Flash作者 (TeA)時間16年前 (2009/11/16 12:34), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/1
我的程式大概如下 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

11/16 12:58, , 1F
我通常是在迴圈外new一個變數讓他在迴圈內累加XD
11/16 12:58, 1F

11/16 12:59, , 2F
argArray[i]是指標阿迴圈跑完i會等於3阿
11/16 12:59, 2F

11/16 13:00, , 3F
函式裡面 var temp:int=i; doSomething(argArray[temp]);
11/16 13:00, 3F

11/16 13:02, , 4F
喔喔 原來如此^^
11/16 13:02, 4F

11/16 13:27, , 5F
這個問題好像很常見呢,精華區 3>7>3>1
11/16 13:27, 5F

11/16 18:18, , 6F
cjcat2266兄,謝謝你,我用你的方法解決問題了!!
11/16 18:18, 6F

11/16 18:19, , 7F
也謝謝各位的回答,謝謝你們 >"<
11/16 18:19, 7F
文章代碼(AID): #1B0DOvvO (Flash)