收听EventDispatcher的所有事件类型

时间:2010-10-06 18:32:16

标签: flex flash events

在Flex中,是否可以收听IEventDispatcher对象的所有事件类型? addEventListener的第一个参数是类型,它是一个字符串。在许多情况下,文档不清楚它触发的事件类型。我想附加一个通用的监听器来检查事件。

2 个答案:

答案 0 :(得分:3)

我认为您必须从此类派生并覆盖dispatchEvent方法,如下所示:

override public function dispatchEvent(event:Event):Boolean
{
    trace(event.type);
    return super.dispatchEvent(event);
}

答案 1 :(得分:1)

简短的回答是否定的,没有任何内置方式可以一直监听所有事件类型。您可能需要开发一个用于管理此系统的系统,或者执行类似于splash建议的操作。就个人而言,我会创建一个自定义事件,覆盖dispatchEvent,并在传递原始事件的“类型”时调度您自己的自定义事件。

override public function dispatchEvent(event:Event):Boolean
{
    //Dispatch your custom event passing along with it the type of the original event.
    super.dispatchEvent(new CustomEvent(CustomEvent.ALL, event.type);
    return super.dispatchEvent(event);
}

然后,您只需为自定义事件设置一个侦听器,并轻松跟踪触发的时间和事件。

希望有所帮助。