Имам платно с id cnv.
<canvas id='cnv'></canvas>
Имам функция на javascript, която променя изображението в платно. Изображенията варират.
function changeImageInACanvas(dynamicSource){
var myid_signature = document.getElementById("cnv");
var myid_ctx_signature= myid_signature.getContext('2d');
var myid_signature_image = document.getElementById("img_mysignature");
myid_signature_image.src = dynamicSource;
myid_ctx_signature.clearRect(0, 0, myid_signature.width, myid_signature.height);
if (myid_signature_image.complete){
myid_ctx_signature.drawImage(myid_signature_image,0,0, myid_signature_image.width, myid_signature_image.height, 0, 0, myid_signature.width, myid_signature.height);
}else{
myid_signature_image.onload = function () {
myid_ctx_signature.drawImage( myid_signature_image,0,0, myid_signature_image.width, myid_signature_image.height, 0, 0, myid_signature.width, myid_signature.height);
};
}
}
Първият път функцията беше изпълнена, изображението се зарежда правилно в платното, но при втория път предишното изображение беше показано, а новото изображение не беше показано.
Отстранявам грешки, като поставям точка на прекъсване във всеки ред на функцията. Открих, че новото изображение се зарежда при второто изпълнение на функцията, но след функцията платното отново зарежда предишното/първото изображение. Къде съм изчезнал?