从显示列表中删除对象

时间:2011-05-10 22:33:19

标签: actionscript-3

我有一个应用程序,它使用主类来控制其他MovieClip,根据需要添加和删除它们,其中大多数是单独的屏幕或子菜单。

当我离开主菜单并稍后从另一个屏幕返回时,某些动画和翻转按钮仍在播放,这是我不想要的,我基本上需要主菜单屏幕才能在每次看到时重置。

我读到了这一点,发现删除孩子并不一定要将其从记忆中删除。

我尝试将mainmenu设置为null,然后再转到另一个屏幕,但这会引发错误,声明参数child必须为none。

任何人都可以了解如何在不需要时完全杀死我的主菜单。

public function confSubMenuOneScreen():void {
        subMenuOneScreen = new SubMenuOne();
        mainmenu = null;
        removeChild(mainmenu)
        addChild(subMenuOneScreen)
        currentScreen = subMenuOneScreen;
    }

这是删除菜单并添加另一个屏幕的代码示例,其中mainmenu = null代码会引发错误。

1 个答案:

答案 0 :(得分:1)

您获得的错误是因为您将对象设置为null - 然后尝试删除对象(现在为null)。反转这两行可能会修复错误。 但是,在垃圾收集将其删除之前,这不会从内存中释放对象(假设您的应用程序中没有其他对“mainmenu”的引用)。

我建议您创建一个“mainmenu”实例并重复使用,而不是尝试删除对象并在每次需要时创建新对象。然后,只需将其从显示列表中删除,然后在需要时再将其添加回来。