在 fabricjs v2 的重大更改列表中,其中一个条目说:
“在画布上单击并拖动会创建一个矩形选择。与此矩形相交的所有边界框都将在鼠标向上时被选中,从而创建一个多选。”
这在拥挤的画布上是不切实际的,因为很难选择你想要的。
有没有办法只选择边界矩形包含在选择区域中(而不是相交)的对象?
我在 rc3 中检查了一下,下面的 mod 做了我想要的:
我知道这很残酷......
而且我无法知道这是否会破坏其他东西(至少现在还没有)
在 _collectObjects() 函数的第 11484 行:
// if (currentObject.intersectsWithRect(selectionX1Y1, selectionX2Y2) ||
// currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2) ||
// currentObject.containsPoint(selectionX1Y1) ||
// currentObject.containsPoint(selectionX2Y2)
// ) {
if (
currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2)
) {
group.push(currentObject);
// only add one object if it's a click
if (isClick) {
break;
}
}