Canvas 在Konvajs中更改宽度和大小,而不是scaleX和scaleY

Canvas 在Konvajs中更改宽度和大小,而不是scaleX和scaleY,canvas,konvajs,Canvas,Konvajs,我使用Konvajs实现了一个简单矩形的转换功能,但是它改变了形状的scaleX和scaleY,而不是元素的实际宽度和高度 更改形状的实际宽度和高度的正确方法是什么?您可以使用transform或transformend事件将比例应用于宽度和高度,并将比例重置为1 const tr = new Konva.Transformer({ node: shape, ignoreStroke: true }); layer.add(tr); shape.on('transform', ()

我使用Konvajs实现了一个简单矩形的转换功能,但是它改变了形状的scaleX和scaleY,而不是元素的实际宽度和高度


更改形状的实际宽度和高度的正确方法是什么?

您可以使用
transform
transformend
事件将比例应用于宽度和高度,并将比例重置为1

const tr = new Konva.Transformer({
  node: shape,
  ignoreStroke: true
});
layer.add(tr);


shape.on('transform', () => {
  // adjust size to scale
  // and set minimal size
  shape.width(Math.max(5, shape.width() * shape.scaleX()));
  shape.height(Math.max(5, shape.height() * shape.scaleY()));
  // reset scale to 1
  shape.scaleX(1);
  shape.scaleY(1);
});