感谢您的出色工作!我正在尝试完成撤消/重做。我正在使用loadFromJSON(...)从我存储在数组中的画布状态重新构建画布。基本上,我的想法是破坏现有的画布并重新构建画布。这是我的代码。
// TODO: How to destroy existing canvas??
canvas = new fabric.Canvas('canvas', {
containerClass : 'myCanvasContainer',
});
canvas.loadFromJSON(history[historyStep]);
此代码在现有画布的顶部添加另一个画布。但是,我需要一种方法来销毁画布并从我的JSON数据构建全新画布(用新画布替换旧画布)。
请告知我是否有可能或任何其他选择。
谢谢&问候, 苏里亚。
答案 0 :(得分:9)
我相信canvas.dispose()
正是您所寻找的。 p>
在这里阅读更多内容: http://fabricjs.com/docs/fabric.StaticCanvas.html#dispose
答案 1 :(得分:0)
您可以使用canvas.clear()函数。
答案 2 :(得分:0)
试试这个:
context.clearRect(0,0,canvas.width, canvas.height);
答案 3 :(得分:0)
这个问题很晚,但我刚发现this article可能适合你。这就是它的正义:
var _Canvas = null;
[...]
$('#canvasid').hide();
if (_Canvas)
_Canvas.clear();
_Canvas = null;
$('#canvasid').siblings('.upper-canvas').remove();
$('#canvasid').parent('.canvas-container').before($('#canvasid'));
$('.canvas-container').remove();