Sif*_*eya 2 javascript fabricjs
我试图删除“画布”上的所有对象而不选择它们。画布中的对象包括已分组和未分组的对象。我看过的所有示例都演示了如何删除单个取消组合对象。
Canvas.ForEachObject(function(o){
o.remove();
});
Run Code Online (Sandbox Code Playgroud)
请参阅小提琴以获取我要实现的目标的示例。 https://jsfiddle.net/Shane00711/r8su3ya0/
小智 12
您是否知道canvas.remove可以接受多个参数?因此,最简单的方法应该是:
canvas.remove(...canvas.getObjects());
Run Code Online (Sandbox Code Playgroud)
除了canvas.clear之外,这只会删除画布中的对象,而不会删除背景。
Dur*_*rga 11
你只需要打电话
canvas.clear()
它将删除所有对象
Sif*_*eya -3
我弄清楚了我需要做什么才能从画布中删除每个对象(分组/未分组)。首先,我必须获取画布中的所有对象。
var obj = canvas.getObjects();
Run Code Online (Sandbox Code Playgroud)
一旦我得到了所有的对象,我只需循环遍历它们,就像我所做的那样删除每个对象。
canvas.remove(obj[0]).
Run Code Online (Sandbox Code Playgroud)
我在我的中引用索引 0 的原因
canvas.remove(obj[0])
Run Code Online (Sandbox Code Playgroud)
是因为每次从画布中删除对象时,列表“obj”中的对象数量也会减少 1,将所有对象向上移动 1 个索引。这意味着画布上的每个对象在某个时刻都将位于“obj”列表的索引 0 处。
这是一个工作示例的小提琴。我删除了画布上的所有对象,而不选择单个对象。 http://jsfiddle.net/Shane00711/r8su3ya0/8/