Fabric.js getObjects()按标签或类型

时间:2018-12-05 15:56:30

标签: javascript html5-canvas fabricjs

在fabric.js中,您可以通过使用

来获取画布中的所有行
objects = canvas.getObjects('line')

但是我有一些对象,它们是一组 rect text

如何标记项目并将它们分组? 我无法选择所有组,因为还有其他类型的组。

这是我的分组对象

var profilepic = new fabric.Rect({
        originX: 'center',
        originY: 'center',
        fill: "#000",
        opacity: 0.7,
        strokeDashArray: [5, 5],
        stroke: '#fff',
        width: w,
        height: h
      });
      var text = new fabric.Text(text, {
        fontSize: 30,
        fill: "#fff",
        originX: 'center',
        originY: 'center',
      });
      var group = new fabric.Group([ profilepic, text ], {
        left: x,
        top: y,
        angle: 0,
      });

1 个答案:

答案 0 :(得分:3)

您可以将任何所需的属性添加到对象,以便以某种方式标记您的组

var group = new fabric.Group([profilepic, text], {
  left: 0,
  top: 0,
  angle: 0,
  hasRectangle: true
});

然后我不确定您是如何选择对象的,但是您可以执行以下操作来获取所需的对象:

let rectanglegroups = canvasobj._objects.filter(
  obj => obj.hasRectangle === true
);
rectanglegroups.map(obj => canvasobj.setActiveObject(obj));