Apache flex 在Flex中,什么';删除Flash CS3中编写的swf的最佳方法是什么?

Apache flex 在Flex中,什么';删除Flash CS3中编写的swf的最佳方法是什么?,apache-flex,actionscript-3,memory-management,flash,Apache Flex,Actionscript 3,Memory Management,Flash,因此,我有一个应用程序,我将把任意数量的swf加载到SWFLoader中,并在运行时删除它们。问题是——它们都是用Flash CS3创作的基于时间轴的电影。我对电影中的内容几乎没有控制权,除了作者无法编写任何互动程序(即没有事件侦听器),但我想确保我使用了最好的技术来停止并丢弃这些东西,这样它们就不会在内存中停留太久。以下是我现在用来摆脱它们的过程: 尝试使用MovieClip(content.stop()停止内容 删除我知道的任何侦听器(输入_FRAME等…) 将SWFLoader的源设置为n

因此,我有一个应用程序,我将把任意数量的swf加载到SWFLoader中,并在运行时删除它们。问题是——它们都是用Flash CS3创作的基于时间轴的电影。我对电影中的内容几乎没有控制权,除了作者无法编写任何互动程序(即没有事件侦听器),但我想确保我使用了最好的技术来停止并丢弃这些东西,这样它们就不会在内存中停留太久。以下是我现在用来摆脱它们的过程:

  • 尝试使用MovieClip(content.stop()停止内容
  • 删除我知道的任何侦听器(输入_FRAME等…)
  • 将SWFLoader的源设置为null
  • 交叉手指、祈祷、做出牺牲(必要时为人)
  • 所以这似乎是可行的,但你们用什么更好(或更全面)的方法来完成同样的任务呢?老实说,我不完全确定这些东西是否只是记忆中的东西,但我没有听到它们,所以我不知道它们是否在那里…

    。Loader(SWFLoader在引擎盖下使用的内容)使用.unload()从后台删除加载的剪辑,但取决于剪辑引用的内容,剪辑仍会运行,事件仍会触发

    FlashPlayer10添加了.unloadAndStop(),但这基本上是在做与您相同的事情


    您还可以尝试在可选的LoaderContext参数中为Loader.load()指定一个显式的SecurityDomain(可能还有ApplicationDomain,因此任何包含的类都是独立的),以防止它在外部添加事件侦听器(如果您不相信剪辑不会),并避免对剪辑中的任何内容形成任何引用,以便对其进行垃圾收集-但很明显,在某些情况下,它可能仍然无法卸载。

    了解应用程序域是件好事-谢谢!