HTML5 プロジェクト用のイメージ プリローダーを作成していますが、問題が発生しました。ゲームで使用される画像は、次のように JavaScript 内の画像オブジェクトで定義されます。
images = new Array();
images[0] = new Image();
images[0].src = '/images/tiles/grass.png';
"document.ready" が実行されるとすぐに、以下に示すプリローダー関数が実行されます。
function preLoader(){
while(loaded != images.length){
var loaded = 0;
for(var loadTest = 0; loadTest < images.length; loadTest++){
if(images[loadTest].complete){
loaded ++;
}
}
console.log(loaded);
}
console.log("loaded all");
}
問題は、images[loadTest].complete が常に false を返すため、ループが終了しないことです。画像が反抗的に読み込まれたときに、ページが読み込まれてから数秒後に関数を実行することをテストしましたが、問題なく動作しました。
このため、while ループの実行によって画像の読み込みが停止していると想定しています。それが本当なら、どうすればこの問題を解決できますか?