假设我有两个扩展Event
的类:
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"
声明事件类型是否可以?
或者事件类型标识符在整个应用程序中是否必须是唯一的?
答案 0 :(得分:5)
你肯定会遇到与此冲突。如果您使用冒泡或在同一对象上侦听这两个事件,这将非常明显。事实上,事件监听器正在侦听字符串。没有强类型,只有 if(string == type)检查(这很简单,但基本上是发生了什么)。
命名这些事件类型是正确的:
public static const EVENT_TYPE_ONE:String = "eventTypeOne";
如果您使用任何[Event(name="eventTypeOne", type="com.me.events.CustomEvent")]
,则此语法至关重要。
答案 1 :(得分:0)
如果您的代码通过使用CustomEventOne
调用addEventListener
来侦听对象上的CustomEventOne.EVENT_TYPE_ONE
事件,则当对象调度CustomEventOne.EVENT_TYPE_ONE
或{时,将调用该事件处理程序{1}}两者基本上都是CustomEventTwo.EVENT_TYPE_TWO
。正如Joel所说,对象侦听的是简单字符串的事件类型。