web-dev-qa-db-fra.com

JavaScript n'a pas réussi à exécuter «drawImage»

Ok donc je crée un jeu avec JavaScript Canvas Elements et autres. J'ai pu charger des tonnes d'images, mais sur quelques-unes, les réponses JavaScript avec des erreurs telles que

TypeError non capturé: Échec de l'exécution de "drawImage" sur "CanvasRenderingContext2D": Aucune fonction correspondant à la signature fournie n'a été trouvée.

Ce qui ne fait aucun sens, car le même code fonctionne dans d'autres endroits!?!

Voici un exemple que j'ai dans mon code:

board.drawImage(document.getElementById("player_explode"), this.x, this.y);

A l'intérieur d'une méthode d'objets, Player.die(), respectivement.

Est-ce que quelqu'un sait pourquoi ce comportement se produit? Je suis très frustré à ce sujet ...

Voici un JSFiddle pour démontrer, à côté de tout le code. Player.die() se trouve sur line[242].

26
tanishalfelven

Le problème était la façon dont je chargeais mes images, j'aurais dû faire:

var image = new Image();
image.src = "imagesource.jpg";

Mais à la place, j'ai obtenu les éléments par id à partir de la page document.

Ressources:

Explication sur le chargement des images

Explication sur la façon dont html charge les images

37
tanishalfelven

vous devez attendre que tous les éléments soient chargés, alors faites comme ceci:

window.onload=function(){
       board.drawImage(document.getElementById("player_explode"), this.x, this.y);
}
4
DODD