在as3中提取.obb文件

时间:2014-07-08 07:50:44

标签: android actionscript-3 air expansion

我使用Flash CS6和Adobe AIR创建的应用程序超过了Google Play限制50Mb。所以我使用扩展文件,这是一个.obb文件,其中有几个swf,我需要使用as3提取。扩展文件下载到/ Android / obb / my_package_name /文件夹,我可以在下面的代码中找到它,但是我在从obb文件中提取文件时遇到困难。 使用FZIP类没有帮助(它提取.zip文件但不提取.obb)。以下是我的代码

file = File.userDirectory.resolvePath(path + "/" + filename);
if (file.exists)
{
    loadSwf();
}

function loadSwf():void 
{
    fileStream = new FileStream(); 
    fileStream.open(file, FileMode.READ);
    bytes = new ByteArray();
    fileStream.readBytes(bytes);
    trace(bytes);
    fileStream.close(); 

    var cont:LoaderContext = new LoaderContext();
    cont.allowCodeImport = true;

    applicationLoader = new Loader();
    applicationLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleAppLoaded);
    applicationLoader.loadBytes(bytes, cont);
}

function handleAppLoaded(e:Event):void 
{
    addChild(applicationLoader);
    /* Now how to extract the swf's from within the obb */
}

1 个答案:

答案 0 :(得分:0)

.obb是zip文件,重命名然后使用fzip读取其内容。请注意,Google Play本身表示在某些设备上.obb文件可能无法与您的应用一起安装。在这种情况下,他们会免费提供您的.obb文件托管,但如果您不希望用户等待.obb下载,您将不得不切换到其他系统。

我个人跳过这一步并直接下载设备丢失的文件(只有声音或某些情况下的图片)并将其保存在光盘上。