Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 从显示列表中删除对象_Actionscript 3 - Fatal编程技术网

Actionscript 3 从显示列表中删除对象

Actionscript 3 从显示列表中删除对象,actionscript-3,Actionscript 3,我有一个应用程序,它使用一个主类来控制其他movieclip,根据需要添加和删除它们,其中大多数是单独的屏幕或子菜单 当我离开主菜单并稍后从另一个屏幕返回时,某些动画和翻滚按钮仍在播放,这是我不想要的,我基本上需要主菜单屏幕在每次看到它时重置 我仔细阅读了这篇文章,发现删除孩子并不一定会将其从记忆中删除 在转到另一个屏幕之前,我尝试将mainmenu设置为null,但这引发了一个错误,指出参数child必须为none null 有没有人能解释一下,在我的主菜单不需要的时候,如何完全杀死它 pub

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

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

我仔细阅读了这篇文章,发现删除孩子并不一定会将其从记忆中删除

在转到另一个屏幕之前,我尝试将mainmenu设置为null,但这引发了一个错误,指出参数child必须为none null

有没有人能解释一下,在我的主菜单不需要的时候,如何完全杀死它

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

这是一个删除菜单并添加另一个屏幕的代码示例,mainmenu=null代码抛出错误。

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


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

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


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

有几个类似于上面所述的功能,可以删除主菜单并添加其他屏幕。main menu变量在main.as文件的开头声明,如何从显示列表中删除某些内容?removeChild()从显示列表中删除对象。但是,通过将其设置为null,您必须在每次需要添加MainMenu时创建一个新的MainMenu实例。如果需要重置,我会在“MainMenu”类中创建一个名为reset()的函数,将实例设置回原始状态。因此,如果在MainMenu类中我有一个重置它的函数,那么在它被移除之前我将如何调用它?对于如何在从主类中删除的类中使用reset函数,我有点困惑。在MainMenu类中,可以使用名为reset()的公共函数。在Main类中,在“confSubMenuOneScreen”函数中,您可以删除“mainmenu”,然后调用mainmenu.reset()将菜单重置为原始状态。有几个类似于上面所述的函数可以删除主菜单并添加其他屏幕。main menu变量在main.as文件的开头声明,如何从显示列表中删除某些内容?removeChild()从显示列表中删除对象。但是,通过将其设置为null,您必须在每次需要添加MainMenu时创建一个新的MainMenu实例。如果需要重置,我会在“MainMenu”类中创建一个名为reset()的函数,将实例设置回原始状态。因此,如果在MainMenu类中我有一个重置它的函数,那么在它被移除之前我将如何调用它?对于如何在从主类中删除的类中使用reset函数,我有点困惑。在MainMenu类中,可以使用名为reset()的公共函数。在Main类中,在“confSubMenuOneScreen”函数中,删除“mainmenu”,然后调用mainmenu.reset()将菜单重置为原始状态。