AS3快速有效地移除儿童和听众以及丢弃父母的方式

时间:2010-10-28 16:09:25

标签: actionscript-3

是否有一种快速有效的方法可以从我的应用中删除所有儿童听众等。如果所有内容都包含在名为View的舞台上的显示对象中?我有很多动态调用的子节点,当我删除它们所在的视图时,它们的侦听器不会被删除。

    public function _discard ():void
    {
        // Quick way to discard the view, remove children and listeners
        removeChild(View);
        View = null;
    }

这是删除父母和孩子的有效方法吗?

3 个答案:

答案 0 :(得分:2)

AFAIK,无法在ActionScript中枚举侦听器。因此,您必须编写清理代码,removeEventListener调用对称addEventListener

答案 1 :(得分:2)

如果您使用弱引用的侦听器,那么侦听器将不会阻止对象在您取消它们时进行垃圾回收。

useWeakReference是addEventListener调用中的第5个参数。

答案 2 :(得分:0)

alxx是对的。解决这个问题并不容易。为了避免手动删除所有子/侦听器,我将创建一个接收View的辅助方法,并递归删除所有子级及其各自的侦听器。