多次添加相同eventListener的后果

时间:2015-01-01 15:53:05

标签: actionscript-3

后台:我有一个遗留项目,我负责调试和修改。预算非常低,并且不允许进行重大的重构。我正在慢慢地进入代码并遇到许多可能的问题和/或效率低下。

问题:多次添加相同的eventListener有什么后果?它会覆盖现有的eventListener吗?这只是效率低下的问题吗?

有一个非常频繁地调用的例程,它添加了eventListeners。我输入了一个trace语句来确认eventListener冗余。

trace("*** already has eventListener", tempEventButton.hasEventListener("eventClicked"));

1 个答案:

答案 0 :(得分:0)

根据Event Dispatcher类的官方Actionscript 3.0参考:

  

请记住,在监听器注册后,后续调用   addEventListener()使用不同的类型或useCapture值结果   在创建单独的监听器注册。

这意味着,如果您没有使用不同的类型或useCapture注册相同的侦听器(传递给addEventListener的函数),则不会创建新的eventListener。

问题是,对于事件调度程序执行此操作是否比执行检查更昂贵,以确保此事件的addEventListener()仅被调用一次。您可以标记已在hasEventListener()中添加了侦听器,而不是调用Boolean执行此检查,这不是一个非常昂贵的检查。