我可以在Fabric js事件的目标上获得什么?

时间:2015-02-21 00:12:04

标签: fabricjs

this fabricjs tutorial section中,它表示将侦听器放在像这样的对象上

var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
   rect.on('selected', function() {
   console.log('selected a rectangle');
});

没关系,但我不想将字符串记录到控制台。我想操纵矩形。具体来说,矩形默认情况下是不可选择的,并且根据应用程序状态,我需要使其可选。

我无法弄清楚如何从事件处理程序中获取矩形的句柄。如何做到逃避了我。

1 个答案:

答案 0 :(得分:1)

在您给出的示例中,您已将事件附加到对象本身。因此,您可以使用this或变量名称(在您的情况下为rect)访问该对象。这是一个例子

var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
   console.log(this);
   this.set({width:200});
});

或者,如果您将它附加到画布以便它侦听所有object:selected个事件,您可以像这样访问发生事件的对象:

var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
canvas.on('object:selected', function (e) {
    console.log('selected a rectangle');
    e.target.set({width:200});
});