Flash AS3指定是否存在具有活动侦听器的不可见显示对象

Flash AS3指定是否存在具有活动侦听器的不可见显示对象,flash,actionscript-3,memory-leaks,garbage-collection,listener,Flash,Actionscript 3,Memory Leaks,Garbage Collection,Listener,是否有任何方法可以计算(指定)从后台删除并具有活动侦听器的对象的平均数量 我有一个非常大的项目(游戏),超过100节课。。现在我扫描每个类,如果有活动的、不必要的侦听器,我会删除它们。 现在,我想要一个这样的工具,它可以告诉我哪里有其他不必要的侦听器,或者至少告诉我是否一切正常。 这就像一个愚蠢的问题,也许你可以向我推荐任何控制听众的工具。 谢谢没有一个打包的工具来实现这一点,但是您可以创建某种映射实用程序来监视您的事件侦听器。此实用程序将提供API,允许您向特定对象添加侦听器并提供回调/处理程

是否有任何方法可以计算(指定)从后台删除并具有活动侦听器的对象的平均数量
我有一个非常大的项目(游戏),超过100节课。。现在我扫描每个类,如果有活动的、不必要的侦听器,我会删除它们。

现在,我想要一个这样的工具,它可以告诉我哪里有其他不必要的侦听器,或者至少告诉我是否一切正常。

这就像一个愚蠢的问题,也许你可以向我推荐任何控制听众的工具。


谢谢

没有一个打包的工具来实现这一点,但是您可以创建某种映射实用程序来监视您的事件侦听器。此实用程序将提供API,允许您向特定对象添加侦听器并提供回调/处理程序。然后它将有一个所有对象及其回调的映射/列表。它可以通过静态方法或依赖项注入提供此功能


Flash Builder探查器是追踪内存泄漏的绝佳工具,尽管它不提供您正在寻找的特定功能。

首先,尝试使用弱事件侦听器,以便在任何DisplayObject设置为Null时删除它们。 其次,您必须自己构建此功能。 例如,找出在MainContainer DisplayObject中附加了鼠标单击事件的不可见对象。 您可以使用以下代码

对于(var j:int=0;j var Obj=MainContainer.getChildAt(j);
如果(!Obj.visible&&Obj.hasEventListener(MouseEvent.CLICK)) { //做点什么 }


}

谢谢你,兄弟,这对我很有用