在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,
});
答案 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));