作者hirabbitt (兔子)
看板Flash
標題[問題] 子物件的影格有可以和父物件溝通的語法嗎?
時間Fri May 20 09:31:42 2011
我想要知道子物件播放到第n格的時機
是否只能用父物件一直去檢查子物件播放到哪了
還是可以在子物件中的影格寫上什麼
讓它執行到該格就丟出一個事件?
感謝
--
◤ __ \__◣
◢◤◢◤ ψhirabbitt
◢ ◤ ◢███◣
◢███◣
涼涼黑兔 █████
█████ 煢煢白兔
十寒一曝 ██
●█
● █▇███ 東走西顧
食不嫌葷 ██
╱╲ ●◥█████◣● 衣不如新
心不嫌素 ◥
╱█
╱╱ ● ◥████ ˇ 人不如故
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.13.127.91
1F:→ aquarianboy:dispatchEvent 05/20 09:36
2F:→ hirabbitt:感謝 我查查看 05/20 11:56
3F:→ hirabbitt:那假如我這個物件是動態產生好幾個 我要怎麼知道是哪一 05/20 17:35
4F:→ hirabbitt:個物件丟出事件呢? 05/20 17:36
5F:→ etrexetrex:e.currentTarget 05/20 17:38
6F:→ hirabbitt:感謝 flash as3真是博大精深 05/20 17:49
7F:→ hirabbitt:咦 e的類別是什麼? 05/20 17:59
8F:→ 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)
9F:推 etrexetrex:看起來沒問題 05/20 18:22
10F:→ hirabbitt:但是trace不到耶 會不會是因為b_bbomb是動態產生的 05/20 18:27
11F:→ hirabbitt:所以丟出的事件 場景1收不到? 05/20 18:27
12F:→ hirabbitt:我有試著在b_bbomb中super.dispatchEvent(new Event("bo 05/20 18:28
13F:→ hirabbitt:但是就算加了super 場景1這邊一樣收不到 05/20 18:28
14F:→ hirabbitt:tempMC.addEventListener("booming",function(E:Event): 05/20 18:36
15F:→ hirabbitt:這樣就可以了=.= 05/20 18:37
16F:推 MrMarcus:dispatchEvent(new Event("booming", true));第二個參數 05/21 23:12
17F:→ MrMarcus:給true讓該事件參與bubbling,上層物件才會收得到該事件 05/21 23:12
18F:→ MrMarcus:world以及最外層root都會收到。你原本加上super.的寫法 05/21 23:14
19F:→ MrMarcus:(第二個參數沒有給true)是由world來發出事件,但是因為 05/21 23:16
20F:→ MrMarcus:沒有bubbling所以場景一還是收不到,只有world本身收得到 05/21 23:16
21F:推 MrMarcus:抱歉super部分我說錯了。parent.dispatchEvent..才是由 05/21 23:21
22F:→ MrMarcus:world來發出事件 05/21 23:22
23F:→ hirabbitt:原來如此 感謝 05/22 06:18