【问题标题】:Re-loading Swf file from sdcard as3 Android从 sdcard as3 Android 重新加载 Swf 文件
【发布时间】:2014-09-30 17:23:45
【问题描述】:

我正在开发一个 android 应用程序,我希望从外部服务器下载 swf 文件,将它们保存到 sdcard 并稍后在应用程序中加载它们。下载工作正常,swf 保存在应用程序目录中。这是我从 sdcard 加载 swf 的代码:

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 的第二帧开始,第三次从第三帧开始,依此类推......我哪里错了或者什么是替代解决方案,请指导。

【问题讨论】:

    标签: android actionscript-3 air flash external


    【解决方案1】:

    尝试,addChild(myloader)Complete 处理程序和 removeChildnull 退出时,使加载的 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");
    }
    

    【讨论】:

    • 还是同样的问题。这个我早就想到了,也试过了。
    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2013-06-03
    相关资源
    最近更新 更多