ユーザーがボタンを押すたびにキャンバスに描画していますが、キャンバスに画像が描画されないことがあります。これは、 context.drawimage 関数が実行される前に画像がロードされていない可能性があると思います。小さなファイルの一部が描画されることがあるためです。コンソールを使用してリソースを確認したので、考えられる唯一の問題です。
この問題を回避するにはどうすればよいですか?
これは私のJavascriptコードです。
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var questionbg = new Image();
var answerbg = new Image();
//this code is inside a function that is called each time a user presses a button
if(questiontype == "text"){
questionbg.src = "./resources/textquestionbg.png";
context.drawImage(questionbg, 0, 0);
}
//if image question
else if(questiontype == "image"){
questionbg.src = "./resources/imageaudiovideoquestionbg.png";
context.drawImage(questionbg, 0, 0);
}
//if audio question
else if(questiontype == "audio"){
questionbg.src = "./resources/imageaudiovideoquestionbg.png";
context.drawImage(questionbg, 0, 0);
}
//else it is a video question
else{
questionbg.src = "./resources/imageaudiovideoquestionbg.png";
context.drawImage(questionbg, 0, 0);
}