我们是否在Fabric.js中有画布修改事件?
问题描述:
在Fabric.js中,我们有Object修改的事件,如object:modified。我们是否对整个画布有类似的事件?我们是否在Fabric.js中有画布修改事件?
其实我试图实现撤消和重做功能。如果发生了某些情况并将其重新加载以用于撤消功能,我将它保存为JSON。
在Fabric.js中,我们有更好的解决方案吗?
答
这在这link更好地解释。这样使用:
canvas.on('object:moving', function(e) { // or 'object:added'
var activeObject = e.target;
console.log(activeObject.get('left'), activeObject.get('top'));
});
答
不要忘记检查添加/删除的对象了。你可以这样实现:
var canvasModifiedCallback = function() {
console.log('canvas modified!');
};
canvas.on('object:added', canvasModifiedCallback);
canvas.on('object:removed', canvasModifiedCallback);
canvas.on('object:modified', canvasModifiedCallback);
你如何期待这个事件不同于“object:modified”? “object:modifed”涵盖了所有在画布上进行修改的情况,因为任何修改都意味着对象更改(除了画布背景颜色之外,但通常不应该是撤消/重做的一部分) – kangax
当我们向画布添加任何新对象时对象:修改的事件不会触发。它只在我们对任何添加的对象执行修改(缩放,旋转等)时触发。 – user2571818
您可以使用“对象:已添加”和/或“对象:已删除” - http://fabricjs.com/events/ – kangax