向 konvajs 组对象添加新属性

Adding new attribute to a konvajs group object

如何向现有 Konva.Group() 对象添加新属性?

例如:

var myRoom = {
  title: "living room",
  group: new Konva.Group({
    x: 0,
    y: 0,
    draggable: true
  })
};

myRoom.group.setAttr("obj", myRoom);
myRoom.group.on('dblclick', function(evt) {
  console.log('room obj', evt.target.getAttr("obj"));
});

属性 "obj" 未定义!那么我怎样才能将它添加到组对象中并能够正确检索它呢?

evt.target 是对您 dbclick 的形状的引用。

要获取对 Group 实例的引用,您可以使用 this:

myRoom.group.on('dblclick', function(evt) {
  console.log(evt.target);  // circle
  console.log(this);   // group
  console.log('room obj', this.getAttr("obj"));
});

演示:https://jsfiddle.net/qsyw4bqm/

注意:在新版本 Konva (0.11.0) 中,您将可以使用 evt.currentTarget 作为参考。