3

目前我尝试创建一个包含几个fabric.Circle 的fabric.Group。每个圆圈都应该是可选择和可拖动的。

默认情况下可以选择直接添加到画布的对象。但是当我将圈子添加到组时,它们是不可选的。

当我将圆圈添加到组和画布时,我只能使它们变得可选。但这在我看来有点混乱。我的意思是......我不需要将一个组的孩子另外添加到画布上以使它们绘制,但我需要将它们另外添加到画布上才能使选择起作用?

这种行为是有意的,是我做错了什么,还是这是一个错误?

jQuery(function() {
   var canvas  = new fabric.Canvas('playground');

   // First the selectable circle:
   var singleCirlce = new fabric.Circle({top: 100, left: 100, radius: 30, fill : 'red'});
   canvas.add(singleCirlce); 

   //second the circle in a group that is not selectable:
   var group = new fabric.Group();
   var groupedCircle = new fabric.Circle({top: 200, left: 200, radius: 30, fill : 'blue'});
   group.add(groupedCircle);
   canvas.add(group);
}); 
4

1 回答 1

0

您可能想要做的是:创建分组元素的未分组版本,例如:

objects = {...};
canvas.add.apply(canvas, objects);
canvas.renderAll();

每个对象都有一个共同点groupId,听:

canvas.on('object:moving', function() {...});

如果任何对象被移动,则groupId相应地移动其中的所有对象。

note:这只是一个理论,我还没有实现它,我不确定如果同时选择多个对象会如何反应。

于 2015-11-23T20:28:45.720 回答