更改了椭圆对象但事件未在 fabric.js 中发出

Changed The Ellipse Object but The event not emit in fabric.js

The demo

重播步骤:

  1. 等待 3s 和 click JSFiddle result。椭圆会显示。
  2. click椭圆对象,控制台不会输出。

问题:

  1. 为什么我 setOptions 时 Ellipse 没有自动更新?
  2. 如何正确收听event

您需要在设置 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>