Я загружаю изображение в свой массив albImg.
в моем цикле я делаю это:
for(var j = 1; j < albImg.length; j++){
if(albImg[j].complete == true && albImg[j].width > 0){
loadedimages++;
}
}
чтобы убедиться, что все мои изображения загружены. Затем я вызываю свою функцию flipImg() следующим образом:
if(loadedimages == albImg.length-1){
flipImg();
}
Затем я переворачиваю изображение и
ctx2.save();
ctx2.scale(-1, 1);
for (var i = RszSpriteCount; i < sprites.length; i++) {
ctx2.drawImage(albImg[sprites[i][0]], sprites[i][1], sprites[i][2], sprites[i][3], sprites[i][4], 0 - (sprites[i][1] + sprites[i][3]), sprites[i][2], sprites[i][3], sprites[i][4]);
}
ctx2.restore();
var flipSz = albImg.length;
albImg[flipSz] = new Image();
albImg[flipSz].src = cnv2.toDataURL();
Вот где моя проблема начинается.
Новое изображение, которое я создал — albImg[5] — не может быть отображено, пока оно не загружено. Но он создается так, как будто он уже загружен.
То есть:
albImg[5].width уже установлен (до 750), прежде чем я смогу его отобразить. Для albImg[5].complete установлено значение true, прежде чем я смогу его отобразить. albImg[5].onload = ctx.drawImage(albImg[5], 0, 0); попытается нарисовать изображение до его загрузки.
Как я могу проверить, действительно ли мое перевернутое изображение загружено, прежде чем отображать его? в яваскрипте?
(из-за обстоятельств я не использую jQuery для этого)
Пожалуйста помоги.
onload
пытается отобразить до загрузки изображения? Вызовonload
означает, что изображение загружено. - person 11thdimension   schedule 26.06.2017