Canvasはどのようにすべてのピクチャのロードが完了するのを待ってから描画を開始しますか?
1071 ワード
すべてのピクチャのロードが完了してから描画を開始するにはどうすればいいですか?
ブラウザのロードピクチャは「マルチスレッド非同期ロード」に属し、どのピクチャが先にロードされたかはまったく予測できません.しかし、Canvasが画像を描くときは一定の順序でなければなりません!-すべての画像のロードが完了するまで待つしかありません.
解決:グローバル変数を定義し、ロードが完了するたびに1枚のピクチャに数値を加算し、値が各臨界点に達したときに次のステップを実行します.
ブラウザのロードピクチャは「マルチスレッド非同期ロード」に属し、どのピクチャが先にロードされたかはまったく予測できません.しかし、Canvasが画像を描くときは一定の順序でなければなりません!-すべての画像のロードが完了するまで待つしかありません.
解決:グローバル変数を定義し、ロードが完了するたびに1枚のピクチャに数値を加算し、値が各臨界点に達したときに次のステップを実行します.
var progress = 0; //
img1.onload = function(){
progress += 20; //
if(progress===100){ startDraw(); }
}
img2.onload = function(){
progress += 80; //
if(progress===100){ startDraw(); }
}