没有键修饰符的Fabric JS中的多选

时间:2019-06-04 12:47:08

标签: javascript vue.js fabricjs

我想知道是否有一种方法可以在不降低班次的情况下在Fabric js画布中主动设置多选“模式”?

我希望通过侦听与复选框相关联的布尔值来激活多选。

我一直在阅读fabricjs文档,并且在没有shift修改键的情况下找不到任何有关多选的内容。

我不确定我的请求是否有效,但是任何指针都会受到赞赏。

因此,基本上,我在mouse:down事件上侦听并检查我的布尔值是否为true / false,如果为true,我想进入多选模式。

canvas.on('mouse:down', evt => {
  if(this.multiSelect) {
    // activate multi-select
 }
}

1 个答案:

答案 0 :(得分:1)

您可以侦听selection:created事件,然后将每个新选择推送到一个数组中,然后将其用于创建具有多个对象的ActiveSelection。将this.multiSelect设置为false时,您还需要清空multiSelection数组。像这样:

var multiSelection = [];
canvas.on('selection:created', selected => {
  if(this.multiSelect) {
    multiSelection.push(selected);
    var groupSelection = new fabric.ActiveSelection(multiSelection)
    canvas.setActiveObject(groupSelection);
  }
});