我正在向画布添加对象并跟踪其类型和计数。当我将它们添加到画布时,一切都很好但是当我修改它们时,我正在努力解决哪个对象在我的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);
};
答案 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)
希望它有所帮助。