1

我正在舞台上的 0 处加载一些 swf 文件。它们是我网站的页面。

要从一个页面更改为另一个页面,我使用 removeChildAt(0),然后我 addChildAt("page_title", 0)。

问题是 removeChild 不会从第一个加载的 swf 文件中删除函数(在卸载之前)。

那我怎么能停下来?

我必须使用其他方式来删除孩子吗?

谢谢!

4

3 回答 3

1

假设您正在使用Loader 加载,您可以使用 unloadAndStop 方法。

更多信息在这里:

http://www.gskinner.com/blog/archives/2008/07/additional_info.html

于 2009-09-21T02:08:38.370 回答
1

在我看来,您实际上并没有删除它们。首先,从显示列表中删除某些内容只是视觉/交互更改。它仍在运行,直到您删除对它的任何引用,作为事件侦听器或 w/e,然后您必须将其设置为 null,以便垃圾收集将在下一个周期中获取它。

如果您使用的是 Flash Player 10,spender 是正确的,unloadAndStop 将为您工作,因为他们最近创建了它来解决您的问题。

我只是想我应该解释发生了什么,因为人们不仅应该知道修复,还应该知道事情发生的原因。

另一个建议,我不会将这些电影加载到舞台上,我会创建一个容器Sprite/MovieClip来保存它们,这样即使您稍后添加其他东西,它们也是分开的、干净的,并且易于通过它们的父级访问(imageContainer_mc例如)。

于 2009-09-26T15:54:42.090 回答
0

或者,您可以将子影片加载到不同的 ApplicationDomain 中,以将加载的代码与您的主应用程序隔离开来。看一下flash.system.ApplicationDomain类(它是Loader.load()方法的参数)。

于 2009-09-29T16:26:57.173 回答