我试图删除Canvas上的所有对象而不选择它们。 Canvas中的对象包括Grouped和Ungrouped对象。我见过的所有示例都演示了如何删除单个取消组合对象。
Canvas.ForEachObject(function(o){
o.remove();
});
请查看小提琴,了解我想要实现的目标。 https://jsfiddle.net/Shane00711/r8su3ya0/
答案 0 :(得分:8)
您是否知道canvas.remove可以使用多个参数? 所以最简单的方法就是这个:
canvas.remove(...canvas.getObjects());
除canvas.clear之外,这只会删除画布中的对象而不是背景。
答案 1 :(得分:4)
你只需要打电话
canvas.clear()
它将删除所有对象
答案 2 :(得分:-1)
我想出了为了从我的Canvas中删除每个对象(分组/未分组)我需要做什么。 首先,我必须得到画布中的所有对象。
var obj = canvas.getObjects();
一旦我得到了所有的物体,我只需要循环通过它们就像我一样去除每一个物体。
canvas.remove(obj[0]).
我在
中引用索引0的原因canvas.remove(obj[0])
是因为每次从画布中移除对象时,列表'obj'中的对象数量也减少1,将所有对象向上移动1个索引。这意味着我画布上的每个对象都会在某个时刻位于'obj'列表的索引0处。
这是一个工作示例的小提琴。我删除画布上的所有对象而不选择单个对象。 http://jsfiddle.net/Shane00711/r8su3ya0/8/