2009-10-13 38 views
3

說我有延伸Event兩類:as3中的自定義事件類型標識符需要唯一嗎?

public class CustomEventOne extends Event 
{ 
    public static const EVENT_TYPE_ONE:String = "click"; 

    //... rest of custom event 

public class CustomEventTwo extends Event 
{ 
    public static const EVENT_TYPE_TWO:String = "click"; 

    //... rest of custom event 

它是確定它們都宣稱使用相同字符串"click"事件類型?

或者事件類型標識符在整個應用程序中需要唯一嗎?

回答

5

你肯定可以碰到這個。如果您使用冒泡,或者在同一個對象上偵聽兩個事件,這將非常明顯。在覈心,事件監聽器正在監聽一個字符串。沒有強大的打字,只是一個如果(字符串==類型)檢查(這是過於簡單,但實質上發生了什麼)。

這將是適當的命名事件類型:

public static const EVENT_TYPE_ONE:String = "eventTypeOne"; 

如果你使用任何[Event(name="eventTypeOne", type="com.me.events.CustomEvent")]這個語法是必不可少的。

+0

感謝您的澄清 - 我一直讓事件獨一無二,我出於好奇而問得比任何其他更多... – Reuben 2009-10-14 00:53:13

0

如果你的代碼通過調用addEventListenerCustomEventOne.EVENT_TYPE_ONE監聽對象上的CustomEventOne事件,當對象調度要麼CustomEventOne.EVENT_TYPE_ONECustomEventTwo.EVENT_TYPE_TWO既是該事件處理程序將調用基本上"click"。正如Joel所說的,對象監聽的是簡單字符串的事件類型。