JavaScriptを使ってゲームを開発しています。canvas
です。ゲームがロードされると、使用されるすべてのイメージがキャッシュされます。画像が読み込まれるのを待ってから
リソースのタイムラインを見ると、私は次のコードは、非同期要求をトリガーすることを参照してください。
var sprite = new Image();
sprite.src = "sprites/sheet1.png";
エンジンは、最終的に描画し、レベルをプレイし始めて、実行を続けます。最初のフレームがペイントされた後に読み込まれた画像は、クリッピングによって表示されないことがあります(つまり、「汚れていない」)。
だから私は、次のようにテストした:
console.log("begin");
var sprite = new Image();
sprite.onload = function() { console.log('loaded!'); };
sprite.src = "sprites/sheet1.png";
console.log("end");
彼らは発生順に結果のコンソール出力は、次のとおりです。
begin
end
loaded!
$.ajax
と同様の方法でasync: false
を探しています。どのように...あなたのために事前にお手伝いを把握することはできません! J.
感謝。私は言及することを忘れていた、このコードは、親によって呼び出されている関数名 "loadSprite(名前)"の一部です。その親は "each sprite loadSprite(name)"のようなループからそれを呼び出します。私は、処理が中断できるようにする必要があり、画像がロードされたときにだけメソッドが戻るようにしています。何か案が? – Jem
ブラウザをフリーズすることなくこれを行うことはできません。適切な解決策を示すために私の答えを更新します。 – ThiefMaster
おかげさまで、とても面白いです。私はその遅延オブジェクトについて全く知らなかった! – Jem