我正在使用FabricJS制作流程图编辑器,并且我的组边界/选择框和/或孩子的位置有问题。我不确定发生了什么。
我的项目是fabric.Group
(活动),其中包含fabric.Rect
和fabric.Text
。当我更改文本并想要用它更改Rect
的大小时,会出现问题。文字在canvas
之外更改,因此不在IText
。
它的工作原理如下:
for(var i in finly.dossiertypes.workflow.activities ) {
if( finly.dossiertypes.workflow.activities[i].activityId === activityId ) {
var activity = finly.dossiertypes.workflow.activities[i];
var rect = activity._objects[0];
var text = activity._objects[1];
/**
* Set text
*/
text.set({
'text': name
}).setCoords();
/**
* Get width from text object
*/
var width = text.width + (finly.dossiertypes.workflow.activityPadding * 2);
/**
* Set rect width
*/
rect.set({
'width': width
}).setCoords();
/**
* Caculate group bounds
*/
activity._calcBounds( true );
break;
}
}
会发生的是rect
在可选择的组边界之外向右移动。正如您所看到的,鼠标指针显示了该组的位置。 rect
的右侧无法选择,因为它位于group
之外。
我尝试了几件事,比如设置组的宽度。任何人都可以帮我这个吗?