我使用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 */
}
答案 0 :(得分:0)
.obb是zip文件,重命名然后使用fzip读取其内容。请注意,Google Play本身表示在某些设备上.obb文件可能无法与您的应用一起安装。在这种情况下,他们会免费提供您的.obb文件托管,但如果您不希望用户等待.obb下载,您将不得不切换到其他系统。
我个人跳过这一步并直接下载设备丢失的文件(只有声音或某些情况下的图片)并将其保存在光盘上。