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);
それを機能させることができました。