我想将 swf 数据保存在本地,这样我就可以一次又一次地重新创建它。虽然大多数 Web 浏览器都有缓存机制,但一旦下载了资源,应用程序就可以从本地获取资源。但是浏览器仍然需要检查远程服务器文件的时间戳,以确保远程文件没有更新。这会导致进程延迟。
我想自己处理,所以我将下载的数据保存在应用程序中。问题是我没有找到一种方法来立即重新创建加载的 swf 的新实例。例如,如果我下载 jpeg 文件,我终于得到了一个位图数据,所以我保留了位图数据,如果我需要一个副本,我只需使用 clone() 。但 swf 不同,我不知道如何克隆 swf 实例。
我的方法是将 swf 作为二进制数组加载,并通过 Loader.loadBytes 加载,这是我的代码。
public static function loadSWFByte(data:ByteArray,callback:Function,domain:ApplicationDomain):void{
var loader:Loader = new Loader();
var f:Function = function(e:Event):void{
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,f);
if(callback!=null){
callback(loader.content,loader.contentLoaderInfo);
}
}
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,f);
loader.loadBytes(data,new LoaderContext(false,domain));
}
如果我需要创建它,我总是使用回调,从而使编码变得复杂。有没有一种方法可以在不使用回调的情况下获取实例?