如何为所有事件添加一个监听器?

时间:2012-06-14 15:22:47

标签: actionscript-3 addeventlistener

EventDispatcher.addEventListener()需要事件类型的第一个参数(String类型的参数)。

但是当前对象可以生成多种类型的事件。

是否可以在一个处理程序中处理所有这些?我可以通过null传递类型参数吗?

2 个答案:

答案 0 :(得分:2)

是的,这是可能的

如果您使用Event类的getQualifiedClassName,则可以使用describeType获取类型。然后,您知道可以添加的所有类型,假设您使用具有公共静态类型的自定义事件作为同一事件类中的字符串。然后,您可以循环遍历所有类型,并将包含所有这些类型的侦听器添加到调度程序。

这个想法包含在我建议使用的templelibraryEventUtils.addAll)中。

请参阅文档: http://templelibrary.googlecode.com/svn/trunk/doc/temple/utils/types/EventUtils.html

答案 1 :(得分:2)

您应该尝试解决并扩展dispatchEvent函数:

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

您可以将您的代码放在这里以处理在此对象中调度的所有事件。