【发布时间】:2012-02-18 15:36:21
【问题描述】:
我正在开发一个几乎完全用 ActionScript 3 编写的 Flex / Air 应用程序(使用 PureMVC)(即我们很少使用 Flex)。视图组件被添加到主应用程序窗口中的 Canvas 对象,然后这些视图加载其他影片剪辑、图像文件等。
当我从舞台上删除视图时,我使用application.canvas.removeChild(...) 这样做。这会在我的 PureMVC 中介器中为该视图触发一个事件,该事件会删除任何已设置的事件侦听器,并且一切看起来都很花哨。
但是,影片剪辑仍在后台播放。它们不会在屏幕上造成任何麻烦……但它们就在那里,在内存中的某个地方播放(例如,我可以看到它们的 trace 语句),我希望它们消失。我怀疑从 Canvas 中删除的 View 仍然存在,但我无法证明。
将视图设置为null 没有任何作用。我很惊讶 AS3 不包含任何简单有效地销毁显示对象及其所有子对象的方法。
唯一的方法是繁琐地卸载所有影片剪辑等,然后希望 Flash 将它们清理干净吗?
【问题讨论】:
标签: flash actionscript-3 actionscript