2015-11-09 2 views
0

supposé que j'ai une image /site/image1.jpg en dessinant cela sur la toile ce serait quelque chose comme ça.Comment déterminer si l'image est déjà dessinée dans HTML Canvas

var image = new Image(); 
image.src = "/site/image1.jpg"; 
image.onload = function(){ 
    context.drawImage(image,x,y); 
} 

En supposant que ma connexion Internet est si lente, comment saurais-je que l'image était déjà dessinée sur la toile?

Merci.

+0

Pour savoir si le chargement de l'image est terminé, vous pouvez vérifier 'image.complete'. Mais la meilleure solution est d'ajouter un callback dans l'événement onload: 'image.onload = doTheNextOperations' – Kaiido

+0

Vous auriez besoin de créer une classe personnalisée qui aurait un' bool'. Vous pouvez définir 'bool' à' true' quand il a été dessiné. – Canvas

Répondre

0

Pour vous entraîner si l'image a été dessinée, conservez un drapeau ou marquez l'image.

var image = new Image(); 
image.src = "blah.foo"; 
image.drawn = false; // Add a property to indicate if the image has been drawn 
image.onload = function(){ 
    ctx.drawImage(image,0,0); 
    image.drawn = true; // flag it as drawn 
} 
// then later you if you want to know if its been drawn 
if(image.drawn){ 
    console.log("Yes its been drawn."); 
} 
+0

Si l'opération de dessin se produit onload de l'image, il suffit de vérifier si elle a été chargée. (image.complete est un booléen) Mais l'OMI cette question révèle un problème dans la conception de code, qui ne devrait pas être workarounded par de tels hacks de drapeau – Kaiido