删除Flex中的所有事件侦听器

时间:2010-08-04 13:09:46

标签: flex actionscript-3 actionscript flex3

如何一次删除所有组件上的所有事件侦听器,尤其是当不知道每个组件附加了哪些侦听器时?

4 个答案:

答案 0 :(得分:3)

您可以覆盖UIComponent所依赖的mx.core.FlexSprite,并生成一个创建的侦听器数组。 Doug Mc Cune提供了源代码here

他的博客说:removeAllEventListeners() - 删除所有类型的所有事件侦听器。这会完全消除组件的所有事件侦听器。

如果能胜任,请告诉我们!

答案 1 :(得分:1)

没有!

您可以使用hasEventListenerwillTrigger来模拟某些内容。但是,在没有实际知道方法名称的情况下,似乎没有明显的方法来删除事件监听器。

你想做什么?

答案 2 :(得分:0)

Adob​​e JIRA中存在此任务的问题,如果您认为对您来说很重要,请投票

https://bugs.adobe.com/jira/browse/SDK-14127

答案 3 :(得分:0)

Elad Elrom在他的实现上有一篇关于存储事件监听器引用的帖子,并且能够一次性删除它们:

http://elromdesign.com/blog/2010/07/16/easy-way-to-store-event-listeners-reference-prevent-memory-leaks/