→ aquarianboy:dispatchEvent 05/20 09:36
→ hirabbitt:感謝 我查查看 05/20 11:56
→ hirabbitt:那假如我這個物件是動態產生好幾個 我要怎麼知道是哪一 05/20 17:35
→ hirabbitt:個物件丟出事件呢? 05/20 17:36
→ etrexetrex:e.currentTarget 05/20 17:38
→ hirabbitt:感謝 flash as3真是博大精深 05/20 17:49
→ hirabbitt:咦 e的類別是什麼? 05/20 17:59
→ hirabbitt:就是function(E: 這邊要寫什麼? 05/20 18:00
元件庫b_bbomb物件影格中:
//丟出booming事件
dispatchEvent(new Event("booming"));
stop();
場景一影格中:
//在靜態物件world中動態產生b_bbomb物件
tempMC=new b_bbomb();
tempMC.x=Math.floor(temp1x/22.5)*22.5;
tempMC.y=Math.floor((temp1y-40)/22.5)*22.5+40;
world.addChildAt(tempMC,0);
//監聽booming事件
addEventListener("booming",function(E:Event):void{
trace("!");
將丟出booming事件的物件隱藏
E.currentTarget.visible=false;
});
但是現在連trace("!");都沒有跑出來QQ
※ 編輯: hirabbitt 來自: 163.13.127.91 (05/20 18:18)
推 etrexetrex:看起來沒問題 05/20 18:22
→ hirabbitt:但是trace不到耶 會不會是因為b_bbomb是動態產生的 05/20 18:27
→ hirabbitt:所以丟出的事件 場景1收不到? 05/20 18:27
→ hirabbitt:我有試著在b_bbomb中super.dispatchEvent(new Event("bo 05/20 18:28
→ hirabbitt:但是就算加了super 場景1這邊一樣收不到 05/20 18:28
→ hirabbitt:tempMC.addEventListener("booming",function(E:Event): 05/20 18:36
→ hirabbitt:這樣就可以了=.= 05/20 18:37
推 MrMarcus:dispatchEvent(new Event("booming", true));第二個參數 05/21 23:12
→ MrMarcus:給true讓該事件參與bubbling,上層物件才會收得到該事件 05/21 23:12
→ MrMarcus:world以及最外層root都會收到。你原本加上super.的寫法 05/21 23:14
→ MrMarcus:(第二個參數沒有給true)是由world來發出事件,但是因為 05/21 23:16
→ MrMarcus:沒有bubbling所以場景一還是收不到,只有world本身收得到 05/21 23:16
推 MrMarcus:抱歉super部分我說錯了。parent.dispatchEvent..才是由 05/21 23:21
→ MrMarcus:world來發出事件 05/21 23:22
→ hirabbitt:原來如此 感謝 05/22 06:18