Re: [問題]如何準確抓到同類別的其他物件

看板Flash作者 (moonet)時間13年前 (2011/11/21 12:00), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《Friess (Fries)》之銘言: : 小弟場景有個btn_new : 按下會產生物件a : var a:MovieClip=new A(); : 如果現在舞台上有10個a被addChild近來 : 我想對他們各別hitTestObject : 例如 : if (a.hitTestObject("請問這邊要寫什麼!?")){ : xxx : xxx : } : 小弟我現在用的方法是 : 把所有add近來的"物件a",都加到$Array裡面 : 而且給予每個"物件a"一個pos屬性 : a.pos=$array.length : 在發生碰撞這邊 : var一個影片片段temp : for (var g=0; g<$array.length; g++) { : if (g!=e.target.pos) { : temp=container.getChildAt(g) as MovieClip; : if (e.target.hitTestObject(temp)) { : xxx : xxx : xxx : } : } : } : 小弟只會這樣用 : 是可以成功碰撞沒錯 : 但是常常會發生意外,例如temp抓到自己 : 有什麼方法可以更準確的抓到同類別的物件嗎? : 拜託各位大大幫忙解答,這真的困擾我好久 你的 array 裝了什麼進去 ? 你的迴圈裡面沒用到 $array[g] 阿 = = 試試這個看看 var a:MovieClip = e.target; var child:MovieClip; for(var i = 0 ; i < container.numChildren ; i++) { child = MovieClip(container.getChildAt(i)); if(a != child) if(a.hitTestObject(child)) { xxx } } 會出現問題有可能是你在 xxx 裡面去做了 addChild 或是 removeChild 造成迴圈不完整或是 childIndex 跑位 但直接比對物件的話應該不會出包 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.137.198.18

11/21 17:18, , 1F
不好意思,少打一段,我的$Array裡面有Push每個Add的"A"
11/21 17:18, 1F

11/22 11:48, , 2F
問題是你只有存入沒有取出
11/22 11:48, 2F
文章代碼(AID): #1EoSpIwH (Flash)
文章代碼(AID): #1EoSpIwH (Flash)