Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
JS: se llama a la función de devolución de llamada cuando se carga la imagen pero, de hecho, image.complete muestra que no está cargada

Hola a todos y feliz año nuevo,

Estoy trabajando en un pequeño proyecto de juego usando JavaScript y encontré un problema al cargar imágenes.
Quiero que todas las imágenes se carguen antes de mostrarlas, así que creé un mapa en el que cada imagen está vinculada a false y, cuando se carga la imagen, un detector de eventos llama a una función que configura la imagen como true en mi mapa.
Pero a veces, mi mapa está lleno de true sin ninguna imagen en mi pantalla y cuando img.complete es falso, lo que significa que no está cargado.
Todo aquí está en una clase de mi archivo y this.chargementImg es el mapa.

Aquí está la función de carga de imágenes:

 chargerImage(chemin) { let img = new Image(); this.chargementImg.set(chemin, false); img.addEventListener("load", this.updateChargementImg(chemin)); img.src = chemin; return img; }

Y la función de devolución de llamada:

 updateChargementImg(chemin) { this.chargementImg.set(chemin, true); }

Salida de la consola cuando no se muestran imágenes:

 Map(3) {'./elements/images/fonds/sol/DarkSpace.png' => true, './elements/images/fonds/mur/Castle2.png' => true, './elements/images/ennemies/Earthspirit.png' => true} img1.complete : false img2.complete : false img3.complete : false

No entiendo por qué no funciona. Gracias por tus respuestas.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Haga que la load EventListener una función sin nombre. Dentro de eso, coloque updateChargementImg y return img . Entonces no habrá carrera ni asincronismo.

 img.addEventListener("load", function(){ this.updateChargementImg(chemin); return img; }); img.src = chemin;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda