2011-08-02 63 views

回答

1

這樣做絕對合法。

您需要記住鼠標事件是如何工作的。事件派發系統檢查觸發鼠標事件的對象的顯示層次結構。那麼就有一個非常根源的元素 - 通常是舞臺 - 和最底層的元素 - 事件目標。

Flash現在通知關於此事件的整個層次。如果此層次結構中的任何元素都將偵聽器設置爲鼠標向下事件,則會收到通知。

通知是一個3步過程,從根元素向下(1)到目標元素,通知該元素(2)並再次冒泡到根元素(3)。

自頂向下的通知流稱爲捕獲階段。要在這裏接收通知,您需要將useCapture標誌設置爲true。自底向上的通知流程稱爲bubblin階段。這是您的父母默認註冊的內容,如果沒有將useCapture設置爲true。

事件的目標階段是在caputure階段之後。這裏通知觸發事件的實際事件目標。

摘要:事件在三階段過程中分派。顯示層次的元素可以聽或不聽。

在這裏找到一個網站鏈接:http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html

enter image description here

2

這很好。您可以根據需要添加儘可能多的事件偵聽器,它們都在偵聽同一個事件,並且不會互相干擾。

+0

簡單明瞭。謝謝。順便說一句,我如何找出哪個對象的實例稱爲偵聽器?我的意思是,如果我有每個類的偵聽器的50個實例,我怎麼能知道函數內部哪個對象導致了調用? – nicks

+2

事件對象具有存儲導致調用的對象的'target'屬性 – Bartek

+1

如果您有這些50個實例的列表/數組,您可以遍歷它並將其與每個MouseEvent的event.target屬性進行比較發送給你的監聽器功能。 – Bakapii

相關問題