在this fabricjs tutorial section中,它表示将侦听器放在像这样的对象上
var rect = new fabric.Rect({ width: 100, height: 50, fill: 'green' });
rect.on('selected', function() {
console.log('selected a rectangle');
});
没关系,但我不想将字符串记录到控制台。我想操纵矩形。具体来说,矩形默认情况下是不可选择的,并且根据应用程序状态,我需要使其可选。
我无法弄清楚如何从事件处理程序中获取矩形的句柄。如何做到逃避了我。
答案 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});
});