Уничтожение холста

Я пытаюсь выполнить отмену/повтор. Я использую loadFromJSON(...) для перестроения холста из состояний холста, которые я сохранил в массиве. По сути, моя идея состоит в том, чтобы разрушить существующий холст и воссоздать холст. Вот мой код.

    // TODO: How to destroy existing canvas?

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

    canvas.loadFromJSON(history[historyStep]);      

Этот код добавляет еще один холст поверх существующего холста. Однако мне нужен способ уничтожить холст и создать новый холст из моих данных JSON (заменив старый холст новым).

Пожалуйста, сообщите, возможно ли это или какие-либо другие варианты, которые у меня есть.


person Ganesh2    schedule 03.06.2013    source источник


Ответы (3)


Я считаю, что canvas.dispose() это то, что вы ищете.

Подробнее читайте здесь: http://fabricjs.com/docs/fabric.StaticCanvas.html#dispose

person Hooman Askari    schedule 31.10.2016

Вы можете использовать функцию canvas.clear().

person rodrigopandini    schedule 03.06.2013

очень поздно с вопросом, но я только что нашел эту статью который может подойти вам. Вот только это:

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();
person Stan    schedule 04.08.2016