摧毁画布

时间:2013-06-03 05:20:23

标签: canvas html5-canvas undo fabricjs redo

感谢您的出色工作!我正在尝试完成撤消/重做。我正在使用loadFromJSON(...)从我存储在数组中的画布状态重新构建画布。基本上,我的想法是破坏现有的画布并重新构建画布。这是我的代码。

    // TODO: How to destroy existing canvas??

    canvas = new fabric.Canvas('canvas', {
        containerClass : 'myCanvasContainer',           
    });

    canvas.loadFromJSON(history[historyStep]);      

此代码在现有画布的顶部添加另一个画布。但是,我需要一种方法来销毁画布并从我的JSON数据构建全新画布(用新画布替换旧画布)。

请告知我是否有可能或任何其他选择。

谢谢&问候, 苏里亚。

4 个答案:

答案 0 :(得分:9)

我相信canvas.dispose()正是您所寻找的。

在这里阅读更多内容: 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();