clearCanvas() с перетаскиваемыми слоями


Когда я добавляю обычные объекты или слои на холст (используя jCanvas), я могу очистить холст с помощью функции clearCanvas().

Но когда я делаю мои слои перетаскиваемыми, функция clearCanvas(), кажется, не работает. Он очищает холст, когда я нажимаю кнопку, но как только мышь снова наводит холст, удаленное содержимое добавляется снова. Что я здесь делаю не так?

Jsfiddle Demo

$('canvas').drawArc({
    fillStyle: 'black',
    x: 100, y: 100,
    radius: 50,
    draggable: true, // uncomment this and Clear canvas works.
    layer: true,
});

$('#clear').click(function(){
    $('canvas').clearCanvas();
});
1 2

1 ответ:

Обновление от Mirko (Вот вы, сэр)

Калеб Эванс дал мне решение моей проблемы:

Метод clearCanvas() предназначался только для использования с неслойными (статическими) чертежами. Всякий раз, когда у вас есть хотя бы один слой jCanvas для вашего холста, clearCanvas() становится неприменимым.

Если вы хотите удалить слой полностью (предполагая, что он вам больше никогда не понадобится), используйте метод removeLayer().
$('#clear').click(function(){
    $('canvas').removeLayers();
    $('canvas').drawLayers();
});