Canvas fabricjs:如何使画布对象(矩形)在鼠标:按下事件时始终处于活动状态?

Canvas fabricjs:如何使画布对象(矩形)在鼠标:按下事件时始终处于活动状态?,canvas,mouseevent,fabricjs,mouseout,Canvas,Mouseevent,Fabricjs,Mouseout,如何使画布对象(矩形)的选择始终处于活动状态,即使在mouse:down事件之后也是如此?我尝试过子目标检查:true属性;但该物业不符合上述要求 this.fabricObject = new fabric.Rect({ left: this.objectSize.left, top: this.objectSize.top, width: this.objectSize.width, height: this.objectSize.height, fill: '#ccc'

如何使画布对象(矩形)的选择始终处于活动状态,即使在
mouse:down
事件之后也是如此?我尝试过
子目标检查:true
属性;但该物业不符合上述要求

this.fabricObject = new fabric.Rect({
  left: this.objectSize.left,
  top: this.objectSize.top,
  width: this.objectSize.width,
  height: this.objectSize.height,
  fill: '#ccc',
  padding: 10,
  subTargetCheck: true
});

this.canvas.add(this.fabricObject);
this.fabricObject.center().setCoords();
this.canvas.renderAll();

=>设置始终处于活动状态的代码

this.canvas.on('mouse:down', (e) => {
  console.log(e.target)
  this.canvas.getObjects().map((object:any) => {
    object.set('active', true);
    this.canvas.renderAll();
  })
});
=>如果我对颜色填充进行此操作,则在鼠标移出事件中工作正常

this.canvas.on('mouse:down', (e) => {
  console.log(e.target)
  this.canvas.getObjects().map((object:any) => {
    object.set('fill', 'green');
    this.canvas.renderAll();
  })
});
参考:


在JSFIDLE中,当单击方块时,它将处于活动状态,当单击方块外侧时,它将处于停用状态。。。所以我想在点击方块外的时候也激活它

您需要使用
canvas.setActiveObject()
在画布上手动设置活动对象

var canvas = new fabric.Canvas("canvas");
var ourRect = new fabric.Rect({
    left: 100,
    top: 100,
    width: 75,
    height: 50,
    fill: "green",
    padding: 10,
    subTargetCheck: true
});

canvas.add(ourRect);

canvas.on("mouse:down", object => {
    canvas.setActiveObject(ourRect);
});

请检查此代码对话框演示:

鼠标:out
是指将鼠标移出对象的边界<代码>鼠标:当你点击某个东西时按下。请用你真正需要的内容编辑你的帖子,你显然混淆了两者。更新了我的问题。非常感谢您的澄清。