【问题标题】:Do custom Event type identifiers in as3 need to be unique?as3 中的自定义事件类型标识符是否需要唯一?
【发布时间】:2009-10-13 23:40:38
【问题描述】:

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

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

【问题讨论】:

    标签: actionscript-3 events event-handling uniqueidentifier


    【解决方案1】:

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

    命名这些事件类型是恰当的:

    public static const EVENT_TYPE_ONE:String = "eventTypeOne";
    

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

    【讨论】:

    • 感谢您的澄清 - 我一直让活动与众不同,我出于好奇而询问比其他任何事情...
    【解决方案2】:

    如果您的代码通过调用addEventListenerCustomEventOne.EVENT_TYPE_ONE 来侦听对象上的CustomEventOne 事件,则该事件处理程序将在对象分派CustomEventOne.EVENT_TYPE_ONECustomEventTwo.EVENT_TYPE_TWO 时被调用,因为两者本质上都是@987654326 @。正如 Joel 所说,对象侦听纯字符串的事件类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多