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

mah*_*ega 3 javascript fabricjs

在Fabric JS中,当选择一个或多个对象时,可以缩放它们.在角落(有方面)或只有宽度/高度.

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

提前致谢!

Swa*_*ain 13

在画布上选择多个对象时,它的行为基本上类似于Fabricjs组.您可以使用lockScalingXlockScalingY属性禁用组的缩放.

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

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

上面的代码禁用了专门针对用户选择上形成的组的缩放,而不是您可能已添加到画布的组.如果要为任何组全局禁用扩展,则可以通过以下方式执行此操作:

fabric.Group.prototype.lockScalingX = true;
fabric.Group.prototype.lockScalingY = true;
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到一个工作小提琴:http://jsfiddle.net/n9z58nuk/2/

  • 您还可以设置“hasControls: false”来隐藏所有缩放和旋转控件。 (2认同)