Я пытаюсь ограничить максимальное изменение размера объекта в Fabric.js. Я использую observe("object:scaling")
с этим кодом:Ограничить размер в Fabric.js
canvasLI.observe("object:scaling", function(e) {
var shape = e.target;
var scaleX = shape.scaleX;
var scaleY = shape.scaleY;
var posX = shape.left;
var posY = shape.top;
if(!isNaN(scaleX) && scaleX > 2)
{
shape.set({
scaleX: 2,
});
}
if(!isNaN(scaleY) && scaleY > 2)
{
shape.set({
scaleY: 2,
});
}
shape.set({
left: posX,
top: posY,
});
console.log("X:" + (shape.scaleX) + " Y:" + (shape.scaleY));
});
Он отлично работает, и предельный размер макс в масштабе, но когда один объект имеет масштабный предел и попытаться снова изменить размер, он движется вслед за курсором мыши сверху и снизу слева (не в правом нижнем положении).
Кроме того, я попытался зафиксировать значения left
и top
в объекте, чтобы переместить его на эти значения, но не работает.
Спасибо.
PS: Также попытался изменить shape.width
и shape.height
вместо scaleX и scaleY и проблема такая же.
EDIT:
Я был мог остановить движение объекта на масштабирование добавление lockScalingX:true and lockScalingY:true
в код на максимальном масштабе, но теперь у меня есть еще одна проблема. Как я могу отключить этот lockScaling, поставив это значение в false, когда я масштабирую DOWN? Как я могу получить событие масштаба DOWN?
Я был мог остановить движение объекта на масштабирование при добавлении 'lockScalingX: правда и lockScalingY: true' к коду на максимальной шкале, но теперь у меня есть еще одна проблема. Как я могу отключить этот lockScaling, поставив это значение в false, когда я масштабирую DOWN? Как я могу получить событие масштаба DOWN? – Mashabak