2014-01-06 30 views
0

所以* ADDED_TO_STAGE *和* REMOVED_FROM_STAGE *事件不會以任何方式通知祖先。我查看了所有內容,找不到答案...我是否需要構建一個新類來完成它,或者有什麼方法可以將它轉化爲使用Capture/Bubble通知階段?AS3 - 使ADDED_TO_STAGE捕獲/氣泡?

+1

它應該。你確定你沒有一個流氓的stopPropogation掛在身邊嗎? – imcg

+0

你如何驗證這些事件在它們各自的調用後沒有被觸發,即'addChild'和'removeChild'。請分享您的代碼,以便SO社區可以對其進行審覈。 –

+0

我使用Trace在新應用程序上測試了它,它實際上在參考中:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#ADDED_TO_STAGE –

回答

1

從舞臺上移除的DisplayObject的後代在其父級從舞臺的顯示列表中刪除時調度它自己的REMOVED_FROM_STAGEADDED_FROM_STAGE事件。

因此,您可以簡單地向任何後代添加事件偵聽器,並讓它直接處理這些事件。

我可能會誤解你正在嘗試做的事情,但一般情況下,事件會從子對象向上冒泡到父母身上。所以當你說後人沒有通知時,你是正確的,因爲他們不是在上升的heiarchy。但是,如果您的目標是讓給定的對象知道何時將其添加到舞臺的顯示列表中或從舞臺的顯示列表中刪除,則可以通過傾聽特定的DisplayObject來獲得該列表。

所以雖然添加/刪除的事件不會冒泡給他們的祖先,但有​​一種方法可以直接監聽他們的事件。

如果你使用了MovieClip或Sprite的子類,那麼你可以讓這個類監聽事件,然後發送一個確實會冒泡給祖先的事件。

但是,我認爲我們應該更好地理解你所要做的事情,因爲你的方法可能是真正的問題。

+0

糟糕...我有一個錯字,我的意思是說我希望ANCESTORS得到通知。 –

+0

好的,哈哈,這是我對這個話題的混亂的一部分。我確實爲你增加了一種可能的方法,因爲你是正確的,這些事件不會向上冒泡給祖先。 – prototypical

+0

對不起,浪費你的時間,男人。你實際上已經告訴我你現在需要的一切 - 沒有什麼內置的,我必須手動完成。謝謝! –