1
var zip:FZip = new FZip();
zip.load(new URLRequest("xx.obb"));

このコードは機能しません。「不明なレコードの署名:」エラーがスローされます。

.obbファイルをどのように抽出しましたか?

4

2 に答える 2

0

あなたのobbファイルが他のzipファイルと同じであるなら、あなたはそれをそのように扱うことができます。まず、抽出するファイルのリストが必要になります(知っているすべてのファイルである可能性があります)。

ファイルを取り出す1つの方法は次のとおりです。

 private function obbFileUnpackingRoutine(event:Event):void{
    addChild(obbUnpackScreen);
    obbUnpackScreen.obbProgress.scaleX = zipCount/filesToUnpack.length;
    setChildIndex(obbUnpackScreen, numChildren -1);
    for (var i:uint = 0; i<24; i++){
        if (zipCount == filesToUnpack.length){
            zipDone = true;
            removeEventListener(Event.ENTER_FRAME, obbFileUnpackingRoutine);
            removeChild(obbUnpackScreen);
            var fr:FileStream=new FileStream();
            var str:String = File.applicationStorageDirectory.nativePath;
            var cacheDir= new File(str +"/YourSettings");
            fr.open(cacheDir.resolvePath("isObbUnpacked.pnr"),FileMode.WRITE);
            fr.writeObject([zip.getFileCount(),zipCount]);
            fr.close();
            return
        }
        var file:FZipFile = zip.getFileByName(filesToUnpack[zipCount])
        var cacheDir:File= null;
        var str:String = File.applicationStorageDirectory.nativePath;
        cacheDir= new File(str);
        var fileContents = file.content
        var fr:FileStream=new FileStream();
        fr.open(cacheDir.resolvePath(file.filename),FileMode.WRITE);
        fr.writeBytes(fileContents);
        fr.close();
        zipCount++;
    }   


}

メモリが許せば、ファイルをzipファイルから直接ロードして、解凍する必要がないようにすることができます。もちろん、urlRequestでのみアクセスできるファイルはすべて抽出する必要がありますが、byteArraysを使用してpngファイル、mp3ファイル、および独自のカスタムファイルをロードできます。

私のobbファイルには何千もの小さなmp3ファイルがあり、allWinnerA10プロセッサで抽出するのに最大3分かかる場合があります。直接ロードとは、ファイルを即座に取得できることを意味します。そして、ほとんど遅延はありません。

于 2012-12-29T16:06:06.363 に答える
0

そのようにあなたはそれを読む必要がありますか?ゲームをロードするならロード方法が良いと思うので特定のルートからロードした方が良いと思います

例: sdcard/android/obb/filename.obb

于 2012-12-27T05:01:33.123 に答える