2012-02-09 2 views
1

Y a-t-il une possibilité de verrouiller l'élément canvas? Dans mon application, je dessine des images complexes et parfois j'utilise des bitmaps. L'utilisation de bitmaps avec canvas n'est pas très confortable - tout le dessin qui doit être placé sur le canevas après que bitmap est placé dans les bitmaps .onload.Verrouiller/déverrouiller le canevas HTML5

Ce serait beaucoup plus facile si je pouvais verrouiller et déverrouiller canvas afin qu'il ne puisse pas être mis à jour pendant un certain temps. AFAIK il n'y a pas de fonction intégrée de verrouillage/déverrouillage. Connaissez-vous une manière simple de l'implémenter?

+2

Je n'ai jamais utilisé de toile, mais comme une idée folle: Vous pouvez dessiner sur une toile cachée et copier l'image sur le visible lorsque vous avez terminé. – RoToRa

+0

J'utilise déjà cette technique, c'est assez courant :) – Yax

Répondre

1

Je ne sais pas si cela est l'épreuve des balles ou non, mais vous pouvez temporairement faire .stroke etc. noops: http://jsfiddle.net/eGjak/247/.

var toLock = "stroke fill".split(" "); 

function lock() { 
    $.each(toLock, function(i, name) { // or another way to loop the array 
     ctx[name] = function() {}; 
    }); 
} 

function unlock() { 
    $.each(toLock, function(i, name) { 
     ctx[name] = ctx.constructor.prototype[name]; 
    }); 
} 
0
$("canvas").attr("disable","False"); 

// bitmap .onload... 

$("canvas").attr("disable","True"); 

Ou

bitmap.onload = function(){ 
    var canvas = window.getCanvas(); 
});