带有可拖动图层的 clearCanvas()

Posted

技术标签:

【中文标题】带有可拖动图层的 clearCanvas()【英文标题】:clearCanvas() with draggable layers 【发布时间】:2014-05-11 02:09:20 【问题描述】:

当我将普通对象或图层添加到画布(使用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】:

UPDATE by Mirko(这里是先生)

Caleb Evans 为我的问题提供了解决方案:

clearCanvas() 方法仅适用于非图层(静态)绘图。只要您的画布至少有一个 jCanvas 层,clearCanvas() 就会变得不适用。

如果您希望完全删除一个图层(假设您再也不需要它),请使用removeLayer() 方法。

$('#clear').click(function()
    $('canvas').removeLayers();
    $('canvas').drawLayers();
);

【讨论】:

nicolallias,在这种情况下,礼仪是让你的答案社区维基,所以你不会因为不属于你的答案而获得声誉。

以上是关于带有可拖动图层的 clearCanvas()的主要内容,如果未能解决你的问题,请参考以下文章