Fabric JS:如何防止扩展活动组

Fabric JS: How to prevent scaling active group

在 Fabric JS 中,当一个或多个对象 is/are 被选中时,可以缩放它们。在角落里(有方面)或只有 width/height.

是否可以仅在选择一个对象时允许此操作,而在选择多个对象时阻止此操作?

提前致谢!

当您在 canvas 上 select 多个对象时,它的行为本质上类似于 Fabricjs 组。您可以使用 lockScalingXlockScalingY 属性禁用组的缩放。

现在要访问这个在 selection 上形成的组,您可以使用 canvas selection:created 事件。下面是示例代码:

canvas.on('selection:created',function(ev){
    ev.target.set({
        lockScalingX: true,
        lockScalingY: true
    });
});

以上代码专门针对用户 selection 上形成的组禁用缩放,而不是您可能已添加到 canvas 的组。如果你想为任何组禁用全局缩放,那么你可以通过以下方式进行:

fabric.Group.prototype.lockScalingX = true;
fabric.Group.prototype.lockScalingY = true;

您可以在此处找到可用的 fiddle:http://jsfiddle.net/n9z58nuk/2/