2009-10-13 40 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所说的,对象监听的是简单字符串的事件类型。