7

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

    // TODO: How to destroy existing canvas?

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

    canvas.loadFromJSON(history[historyStep]);      

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

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

4

3 回答 3

17

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

在这里阅读更多:http: //fabricjs.com/docs/fabric.StaticCanvas.html#dispose

于 2016-10-31T15:22:22.107 回答
1

您可以使用 canvas.clear() 函数。

于 2013-06-03T10:37:51.523 回答
0

这个问题很晚,但我刚刚发现这篇文章对你有用。这是它的全部:

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();
于 2016-08-04T13:06:27.033 回答