带有可拖动图层的 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()的主要内容,如果未能解决你的问题,请参考以下文章

ps:图层的选择

添加到拖动图层后,鼠标拖动停止工作

拖动时的 KineticJS 图层索引

带有可点击对象的jQuery可拖动列表 - 防止点击拖动

openlayers小案例(输入地名查询拖动图层切换图层透明度鹰眼图层显示与隐藏定位放大缩小)新手必备

如何通过拖动来移动图层?