在fabric.js中修改了哪个对象

时间:2014-01-18 15:38:39

标签: javascript jquery canvas fabricjs

我正在向画布添加对象并跟踪其类型和计数。当我将它们添加到画布时,一切都很好但是当我修改它们时,我正在努力解决哪个对象在我的fabric.js画布中被修改但是只有它是一种卡片类型。 我想让它的坐标为cardtype和cardcount。我做了一个显示一切正常的fiddle,除了我得到所有对象的信息,即使我只修改了一个对象。我如何只获取实际的activeObject及其信息?

这是我一直试图解决的小提琴中的js。

        //**********When card is moved************  

    canvas.on('object:modified', onObjectModified);

          function onObjectModified(e) {    

          var activeObject = e.target;

          alert(activeObject.get('left')+' '+ activeObject.get('top')+' '+cardtype+' '+cardcount);                  

       };

1 个答案:

答案 0 :(得分:2)

要使用fabric.js获取选定的canvas对象,您需要使用methood getActiveObject(),它会返回您需要的内容。像:

alert('Modified object x,y: ' + this.getActiveObject().get('left') + 
  ' ' + this.getActiveObject().get('left') + 
  ' it\'s id is: ' + this.getActiveObject()._objects[0].id);

这是fiddle

请记得检查括号。现在,您为每个黄卡添加onObiectModified作为事件处理程序,我将为每个黄卡进行调用。只需将canvas.on('object:modified', onObjectModified);移到其他地方,例如在var声明之后。

哦,如果您使用像jsFiddle和fabric.js这样的测试环境,请使用链接https://rawgithub.com/kangax/fabric.js/master/dist/fabric.js 而不是https://raw.github.com/kangax/fabric.js/master/dist/fabric.js,(注意删除点!)或者它不适用于Chrome(请参阅this question

希望它有所帮助。