在 Fabric.js 中,我们有对象修改事件,例如 object:modified。我们是否对整个画布有类似的事件。
实际上我正在尝试实现撤消和重做功能。如果画布上发生任何事情,我会将画布保存为 JSON,然后再次加载以进行撤消功能。
对于 Fabric.js 中的这个特性,我们有更好的解决方案吗?
在 Fabric.js 中,我们有对象修改事件,例如 object:modified。我们是否对整个画布有类似的事件。
实际上我正在尝试实现撤消和重做功能。如果画布上发生任何事情,我会将画布保存为 JSON,然后再次加载以进行撤消功能。
对于 Fabric.js 中的这个特性,我们有更好的解决方案吗?
不要忘记检查添加/删除的对象。你可以像这样实现它:
var canvasModifiedCallback = function() {
console.log('canvas modified!');
};
canvas.on('object:added', canvasModifiedCallback);
canvas.on('object:removed', canvasModifiedCallback);
canvas.on('object:modified', canvasModifiedCallback);
这在此链接中得到了更好的解释。以这种方式使用它:
canvas.on('object:moving', function(e) { // or 'object:added'
var activeObject = e.target;
console.log(activeObject.get('left'), activeObject.get('top'));
});