flex swfloader unload
这样的一种情况:
使用Loader去load一个swf:
var fileURL:String = “assets/test.swf”
var swfLoader:Loader = new Loader();
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
swfLoader.load(new URLRequest(fileURL));
function swfLoaded(evt:Event):void{
addChild(swfLoader);
}
这些是加载外部swf在AS3.0中最基本的代码,如果你在舞台上有一个按钮,点击时去调用 swfLoader.unload(),按道理的话应该会把加载到swfLoader里面的test.swf给清除。
问题产生: 如果test.swf中包含声音,则会出现调用unload方法后声音还是存在。
通常情况下会怀疑自己的代码是不是有问题,或者还是别的什么。。。但是即使在最简情况下也出现这样的问题,那就要追寻缘由了。在网上找了很多相关的文章,大部分都给了这个链接: http://www.gskinner.com/blog/archives/2008/04/failure_to_unlo.html gskinner,很强的团队,以后再介绍了。里面体介绍了问题出现的情况。
unload是flash player9的一个bug,出现的情况就是flash player无法回收loader中load的元件,unload做的工作只是将load的元件移除Loader的display list(显示列表)。而只要load的swf中包含复杂的代码,或者说有任何事件侦听代码就无法使将其回收,当然也就无法回收他占用的内存。如果有大量的加载的话很有可能让程序崩溃。然而如果swf中有声音更是直接影响。总不能停止所有声音吧。
解决方法:
读gskinner的那篇文章,你会发现他并没有直接给出解决方法,只有一些建议。读了评论你会发现更是有意思,开始大部分是夸奖,到了后来却很多是抱怨,说什么只是谈,没有解决方法阿什么的,而且会发现没人说自己顺利解决了问题。看样子真是一个很大的bug。从我个人来说我试了其中的一些方法,也没有成功。但是其中有一种方法值得我们研究,叫“GC“,垃圾回收机制强行执行,有两篇文章可以参考:http://bbs.actionscript3.cn/thread-234-1-1.html 还有就是:http://www.ultrashock.com/forums/random-chat/failure-to-unload-flash-player-9s-dirty-secret-99237.html
主要代码:
package ...
{
import flash.display.Loader;
import flash.net.LocalConnection;
&
相关文档:
PopUpEffect.as
package
{
import flash.display.DisplayObject;
import mx.core.IFlexDisplayObject;
import mx.effects.Blur;
import mx.events.TweenEvent;
import mx.managers.PopUpManager;
public class PopUpEffect
{
public function PopUpE ......
原文地址:http://www.adobe.com/cn/devnet/flex/articles/itemrenderers_pt3.html
在本系列的第 2 部分中, 我向您展示了如何使用 MXML 和 ActionScript 创建外部 itemRenderer。在我用过的示例中, 有一个调度自定事件 BuyBookEvent 的 Button-这样应用程序可以对它作出响应。本文进一步讨论与 itemRenderer 的通信。
我 ......
Flex中As调用Js的方法是:
1、导入包 (import flash.external.ExternalInterface;)
2、使用ExternalInterface.call("Js函数名称",参数)进行调用,其返回的值就是Js函数所返回的值
Js调用As的方法是:
1、导入包 (import flash.exte ......
· Flex中应用程序、模块之间参数传递一般有三种方式:
· 1.通过URL携带参数进行传递
· 2.通过事件进行传递
· 3.实现接口进行传递
· 其中URL传递参数时:
· Application之间和Module之间是有区别的 ......
flex滚动条虽然很好用,但总是会出现意想不到的问题。前几天说了,拖动后花屏的问题,今天又发现了更恶心的问题。当你把容器的宽度调为100%后 ,verticalScrollbarPolicy 用默认的auto。这是如果你缩放窗口会出现滚动条,但问题这是就出现了,只要出现了垂直滚动条,水平滚动条就是被迫出现。
<?xml version="1.0" enco ......