更改了Ellipse对象,但该事件未在fabric.js中发出

时间:2019-04-25 07:31:43

标签: fabricjs

The demo

重播步骤:

  1. 等待3秒,然后click JSFiddle result。椭圆将显示。
  2. click椭圆对象,将不会输出任何控制台。

问题:

  1. 为什么我setOptions时椭圆不能自动更新?
  2. 如何正确收听event

1 个答案:

答案 0 :(得分:1)

设置rx,ry值后,您需要调用setCoords

演示

var canvas = new fabric.Canvas('c', {
  width: 400,
  height: 400
});
var object = new fabric.Ellipse({
  rx: 0,
  ry: 0,
  fill: 'red',
  top: 100,
  left: 100,
})

object.on('mousedown', function(e) {
  console.log(e)
})
canvas.add(object)
setTimeout(() => {
  object.set({
    rx: 40,
    ry: 60
  }).setCoords();
  canvas.renderAll();
}, 3000);
canvas{
  border:1px solid;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.7.0/fabric.js"></script>
<canvas id='c'></canvas>