Loader类中方法unload()与unloadAndStop(gc)方法的使用

来源:互联网 发布:国家电网办公软件 编辑:程序博客网 时间:2024/06/06 06:54

unload

()方法 
public function unload():void语言版本: ActionScript 3.0运行时版本: AIR 1.0 Flash Player 9, Flash Lite 4

删除此 Loader 对象中使用 load() 方法加载的子项。将关联 LoaderInfo 对象的 property 重置为 null。不必破坏子级,因为其他对象可能要引用它;但是,它不再是 Loader 对象的子级。

最佳做法是,在卸载子 SWF 文件之前,您应该显式关闭子 SWF 文件的对象(如 LocalConnection、NetConnection、NetStream 和 Sound 对象)中的任何流。否则,子 SWF 文件中的音频可能会继续播放,即使已卸载子级 SWF 文件。要关闭子 SWF 文件中的流,请向子文件中添加事件侦听器以侦听 unload 事件。当父文件调用 Loader.unload() 时,将为子文件分派 unload 事件。以下代码显示了完成上述任务的方法:

 

function closeAllStreams(evt:Event) {

    myNetStream.close();
mySound.close();
myNetConnection.close();
myLocalConnection.close();
}
myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);


unloadAndStop

()方法 
public function unloadAndStop(gc:Boolean = true):void语言版本: ActionScript 3.0运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

尝试卸载子 SWF 文件内容并停止执行已加载的 SWF 文件中的命令。此方法尝试通过删除对子 SWF 文件的 EventDispatcher、NetConnection、Timer、Sound 或 Video 对象的引用,从而卸载使用 Loader.load()Loader.loadBytes() 加载的 SWF 文件。因此,针对子 SWF 文件和子 SWF 文件的显示列表将发生以下行为:

  • 停止声音。
  • 删除舞台事件侦听器。
  • 删除 enterFrameframeConstructedexitFrameactivatedeactivate 的事件侦听器。
  • 停止计时器。
  • 断开摄像机和麦克风实例
  • 停止影片剪辑。

参数  gc:Boolean (default = true) — 提示垃圾回收器对 SWF 子对象执行 (true) 还是不执行 (false) 垃圾回收。如果要以异步方式卸载很多对象,则将 gc 参数设置为 false 可能会提高应用程序的性能。但是,如果将该参数设置为 false,则在运行 unloadAndStop() 命令之后,子 SWF 文件的媒体和显示对象可能还会保存在内存中。

原创粉丝点击