FabricJS删除V.2

时间:2017-11-28 10:55:02

标签: javascript html5-canvas fabricjs

我正在尝试选择多个并删除。选择一个对象删除就好了但是当选择多个时它不会做任何事情。我环顾四周,用v1.4中的小提琴看到了这个答案

https://stackoverflow.com/a/41286840

当我选择多个时,我得

canvas.getActiveGroup is not a function

现在getActiveObject可以来自一个数组。我试图检查是否大于一个使用长度,然后删除这些对象,但它总是通过

if (activeObject) {

而不是

else if (activeObject.length >= 2) {

但两者都不会起作用。 Fabric不具备多个选定项目的功能吗?

2 个答案:

答案 0 :(得分:2)

正如change log getActiveGroup中提到的那样,此功能现已删除。

所以你需要使用canvas.getActiveObjects()获取对象,然后遍历存在的对象并从画布中删除它们。

这是jsFiddle

答案 1 :(得分:0)

canvas.getActiveGroup 在新版本中已删除。所以这里的代码工作正常。尝试这个。有关fabricJs更改的更多信息,请单击以引用此fabricJS breaking changes

deleteSelectedObject() {
    let activeObject = this.canvas.getActiveObjects();
    if (activeObject) {
      let objectsInGroup = activeObject;
      this.canvas.discardActiveObject();
      let self = this;
      objectsInGroup.forEach(function(object) {
        self.canvas.remove(object);
      });
    }
  }