Objekt innerhalb der Begrenzung der Zeichenfläche verschieben
Ich versuche, das sich bewegende Objekt innerhalb der Leinwand zu begrenzen, aber ich habe Schwierigkeiten, ein Objekt mit einem Begrenzungsbereich oben und links zu bewegen, und wenn ich das Objekt in dieser Zeit mit einer großen Größe skaliere, kann ich das sich bewegende Objekt auch nicht begrenzen linke und obere Seite der Leinwand
canvas.observe("object:moving", function(e){
var obj = e.target;
// if object is too big ignore
if(obj.currentHeight > obj.canvas.height || obj.currentWidth > obj.canvas.width){
return;
}
var halfw = obj.currentWidth/2;
var halfh = obj.currentHeight/2;
var bounds = {tl: {x: halfw, y:halfh},
br: {x: obj.canvas.width-halfw, y: obj.canvas.height-halfh}
};
// top-left corner
if(obj.top < bounds.tl.y || obj.left < bounds.tl.x){
obj.top = Math.max(obj.top, bounds.tl.y);
obj.left = Math.max(obj.left, bounds.tl.x )
}
// bot-right corner
if(obj.top > bounds.br.y || obj.left > bounds.br.x){
obj.top = Math.min(obj.top, bounds.br.y);
obj.left = Math.min(obj.left, bounds.br.x)
}
});