flash as3中怎样清除加载外部的swf文件(彻底清除)

如题所述

假设loader是加载外部文件的Loader实例,代码如下:

loader.unloadAndStop(true);

此方法会执行以下操作:

停止正在播放的声音;删除舞台相关事件侦听器;删除 enterFrame、frameConstructed、exitFrame、activate 和 deactivate 等广播事件的侦听器;停止加载的swf内部计时器;断开摄像头和麦克风实例;停止正在播放的影片剪辑。

以上的方法是可能在某些情况下并不能彻底清除对象,比如有外部的引用,还有可能造成野指针。最好的方法还是手动将其内部所有的异步操作和事件侦听等停止,并将其中变量的引用置为null,并且然后调用loader的unload方法,这样在回收器运行时会彻底清除其内存。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-16
条件你的,播放器版本起码是10的,那么你就可以用loader.unloadAndStop();这样就可以了,至于那些temp = null的,一般都是用在实例化对象,swf是用loader加载进来的,有专门的清除方法。
第2个回答  2011-08-14
加载前,先把它赋值给一个对象变量。
使用后,删除变量,就是让它没有任何”引用“,
flash即可按其回收机制进行回收释放。追问

举个例子

第3个回答  推荐于2016-06-28
var temp=swf
清除:temp=null;本回答被提问者采纳

flashAS3怎么让加载的外部SWF文件卸载干净
首先你要移除掉外部swf的所有事件侦听。由你内部添加的事件侦听,就在内部移除;而这个外部swf本身的事件侦听,应该由外部swf提供一个移除自身事件侦听的公开方法,你从内部调用这个方法就行了。否则它的引用将会保存在 event.target 里面。其次你要销毁所有对这个swf的全局引用(非全局引用可以不管):比如...

在Flash as3.0 中,怎么可以移除加载进来的SWF文件?
假如你加载对象是loaderSwf,而且进行了添加动作addChild(loaderSwf),在这里是假如你添加到了主时间轴中,那么移除就很简单了:从显示列表中移除显示对象 removeChild(DisplayObject(loaderSwf));\/\/清除引用,节省内存 loaerSwf=null;

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

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

FLASH如何卸载外部SWF
用unloadMovie()这个方法就行了,例如:unloadMovie(wenhua);

我在AS3的文件中加载了一个AS1写的SWF文件,现在需要卸载掉这个SWF文件...
把加载器删掉,因为加载器相当容器,当加载器不在了文件也就不在了,或用unload()方法。或重新定义一个URLRequest对象。可以替换掉原来加载的内容。

flash AS3加载外部SWF,用按钮设置关闭SWF退回到原来页面
先removeChild()你在场景上的swf对象,然后移除loader身上的各种侦听,然后在清理:loader.unloadAndStop();\/\/卸载子swf 以及内部的事件侦听移除 关闭流 loader.unload();\/\/卸载 loader=null;但有时候你那被加载的swf文件里有部分复杂的程序还是在内存里运行着,例如声音,这个问题也有很多人问过,把swf...

flashAS3外部swf文件的卸载
\/\/ 原始代码var Movie_Ldr: Loader = new Loader();btn_3.addEventListener(MouseEvent.CLICK, loadHandler);function loadHandler(event: Event): void{ Movie_Ldr.unloadAndStop(); var URLstr: String = "xxxx.swf"; var req: URLRequest = new URLRequest(URLstr); Movie_Ldr.l...

as3中怎样完全的移除用Loader类加载进来的带有声音的swf
URLRequest("url.swf"));\/\/加载 function completeFun(e:Event):void{ this.addChild(loader.content);(loader.content as MovieClip).play();\/\/加载的内容是带有声音的动画 setTimeout(removeMovieClip,1000);\/\/1秒后卸载动画 } function removeMovieClip():void{ loader.unloadAndStop();} ...

Flash AS3 被调用的swf如何自己卸载?
关闭的代码应该是用下面这句:fscommand("quit","true");是把当前的播放器关掉,只能本地使用,网页上不支持这个功能。

相似回答