4

PreloadJSデスクトップ ブラウザと iPhone ではすべて正常に動作するのに、Android デバイスでファイルをロードするときに特定のステップでスタックしました。

ロード プロセスは、最後の GIF ファイルで停止しました (コードに示されているように)。この GIF ファイルを読み込めなかったのはなぜですか?

これは以前デスクトップ ブラウザで発生しましたが、エラーは発生しませんでしたが、当時は非標準の mp3 ファイルが原因でした。ファイルのロード/初期化に失敗したときに、この種の例外を処理するにはどうすればよいですか?

ファイルをロードするために使用したコードは次のとおりです。

var preload = new createjs.LoadQueue();
createjs.Sound.alternateExtensions = ["ogg"];
preload.installPlugin(createjs.Sound)
preload.installPlugin(createjs.SpriteSheet)
preload.addEventListener("fileload", updateLoadingProcess); // show loading process

showWelcomeText();
var resources = {
    change: "assets/sound/change.mp3",
    click: "assets/sound/click.mp3",
    collide: "assets/sound/collide.mp3",
    game_over: "assets/sound/gameover.mp3",
    reset: "assets/sound/reset.mp3",
    win: "assets/sound/win.mp3",
    interface_assets: "assets/interface.png",
    raining_serial: "assets/raining-serial.gif",
    background: "assets/background.jpg",
    text: "assets/text-" + LANG + ".gif",
};
var loadedResource = 0;
var manifest = [];
for(var i in resources){
    manifest.push({id: i, src: resources[i] + _VER_ }); //add version to update cache
}

preload.loadManifest(manifest);

アップデート

一部の Android デバイスが最初の画像 (interface.png) で停止することがわかりました。これらのブラウザーには開発者ツールがないため、その理由はわかりません。

アップデート

この問題は、これらの画像ファイルに XHR を使用しないことで解決されますが、その理由はまだわかりません。var preload = new createjs.LoadQueue(false);それを機能させることができました。

4

1 に答える 1