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)
        }
});

Antworten auf die Frage(5)

Ihre Antwort auf die Frage