使用fabricjs从Canvas中删除所有对象(Grouped / Ungrouped)

时间:2017-07-03 08:54:17

标签: javascript fabricjs

我试图删除Canvas上的所有对象而不选择它们。 Canvas中的对象包括Grouped和Ungrouped对象。我见过的所有示例都演示了如何删除单个取消组合对象。

Canvas.ForEachObject(function(o){
     o.remove();
    });

请查看小提琴,了解我想要实现的目标。 https://jsfiddle.net/Shane00711/r8su3ya0/

3 个答案:

答案 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/