3

假设我有两个扩展类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"吗?

或者事件类型标识符是否需要在整个应用程序中是唯一的?

4

2 回答 2

5

你肯定会遇到这种情况。如果您使用冒泡,或者在同一个对象上监听两个事件,这将非常明显。在核心,事件侦听器正在侦听字符串。没有强类型,只是一个if(string==type)检查(这太简单了,但本质上是发生了什么)。

命名这些事件类型是合适的:

public static const EVENT_TYPE_ONE:String = "eventTypeOne";

如果您使用任何[Event(name="eventTypeOne", type="com.me.events.CustomEvent")]这种语法是必不可少的。

于 2009-10-14T00:16:50.233 回答
0

CustomEventOne如果您的代码通过调用addEventListenerwith来侦听对象上的事件CustomEventOne.EVENT_TYPE_ONE,则该事件处理程序将在对象调度时调用其中一个CustomEventOne.EVENT_TYPE_ONECustomEventTwo.EVENT_TYPE_TWO两者本质上都是"click". 正如 Joel 所说,对象侦听纯字符串的事件类型。

于 2009-10-14T05:07:18.287 回答