从SD卡as3 Android重新加载Swf文件
我正在开发一个android应用程序,我希望从外部服务器下载swf文件,将它们保存到SD卡,然后在应用程序中加载它们。下载工作正常,swf保存在应用程序目录中。以下是我从SD卡加载swf的代码:从SD卡as3 Android重新加载Swf文件,android,actionscript-3,air,flash,external,Android,Actionscript 3,Air,Flash,External,我正在开发一个android应用程序,我希望从外部服务器下载swf文件,将它们保存到SD卡,然后在应用程序中加载它们。下载工作正常,swf保存在应用程序目录中。以下是我从SD卡加载swf的代码: var myloader:Loader = new Loader(); var myhomeButton:btnHome = new btnHome(); addChild(myloader); var swfFilePath:File = File.applicationStorageDirect
var myloader:Loader = new Loader();
var myhomeButton:btnHome = new btnHome();
addChild(myloader);
var swfFilePath:File = File.applicationStorageDirectory.resolvePath("Android/data/myswffile.swf");
var inFileStream:FileStream = new FileStream();
inFileStream.open(swfFilePath, FileMode.READ);
var swfBytes:ByteArray = new ByteArray();
inFileStream.readBytes(swfBytes);
inFileStream.close();
var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loaderContext.allowCodeImport = true;
myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, mycompleteHandler);
myloader.loadBytes(swfBytes, loaderContext);
function mycompleteHandler(evt:Event):void
{
myloader.contentLoaderInfo.removeEventListener(Event.COMPLETE, mycompleteHandler);
addChild(myhomeButton);
myhomeButton.height = _height * 0.08;
myhomeButton.width = myhomeButton.height;
myhomeButton.x = 10;
myhomeButton.y = 10;
myhomeButton.addEventListener(MouseEvent.CLICK, myexitfftn);
}
function myexitftn(evt:Event):void
{
myloader.unloadAndStop(true);
removeChild(myhomeButton);
gotoAndStop(1, "SomeOtherFrame");
}
问题是,当我单击退出按钮时,swf将卸载,但当我重新加载它时,它将从加载的swf的第二帧开始,第三次从第三帧开始,依此类推。。。我哪里做错了,或者什么是替代方案,请指导 在Complete
处理程序中尝试,addChild(myloader)
,退出时removeChild
和null
,以便从内存中完全删除加载的swf
,如下所示:
function mycompleteHandler(evt:Event):void
{
myloader.contentLoaderInfo.removeEventListener(Event.COMPLETE, mycompleteHandler);
addChild(myloader);
//... Rest of code remains same
}
function myexitftn(evt:Event):void
{
myloader.unloadAndStop();
removeChild(myloader);
myloader = null;
removeChild(myhomeButton);
gotoAndStop(1, "SomeOtherFrame");
}
还是一样的问题。我以前已经想到过这个,也试过这个。