Estoy haciendo un juego usando javascript + canvas. utilizo el siguiente código para garantizarimage.onload se dispara antes de que la imagen esté completamente cargada
var imgLoaded = 0;
var imgToLoad = multiImgs;
var onImgLoad = function()
{
imgLoaded++;
if(imgLoaded == imgToLoad)
{
ctx.drawImage()
}
}
for(var i = 0; i < multiImgs; i++)
{
images[i] = new Image();
images[i].onload = onImgLoad();
images[i].src = 'images/'+i+'.png';
}
Este código, a veces funciona bien, esp. cuando las imágenes están en caché Sin embargo, al cargar por primera vez, a veces, da INDEX_SIZE_ERR: DOM Exception 1 que encontré se debe a la altura & ancho de la imagen no está disponible como lo sugiere Quickredfox en este answer ... pero luego aquí se llama drawImage solo cuando todas las imágenes se cargan? El error ocurre principalmente en dispositivos móviles
Gracias. Gran supervisión de mi parte! – Ani
Me preguntaba por qué mi método se ejecutó de inmediato. ¡Gracias por esta solución! En cuanto a alguien nuevo en JavaScript, esto no es tan obvio, aunque lo entiendo por tu comentario :) – jonas