fabric.js获取IText对象的“编辑”状态

唐MB

在fabric.js中,我想在画布上添加一些关键的交互。如果选择了IText对象,则我想在按“ del”键时将其删除。我是通过以下方式完成此任务的:

$('html').keyup(function(e){
  if (e.keyCode == 46) {
    obj = canvas.getActiveObject();
    canvas.remove(obj);
  }
});

现在的问题是,当我正在编辑IText并按DEL键时,显然也会删除该对象。我想通过这样的方式来防止这种情况:

$('html').keyup(function(e){

  canvas.observe('text:editing:entered', editing = true);

  console.log(editing);

  if (editing == false) {
    if (e.keyCode == 46) {
      removeObject();
    }
  };

});

=仅当我不在编辑IText的过程中才删除对象

我在这里发现了此火灾事件“ editing:entered”:http : //fabricjs.com/docs/fabric.IText.html因此,我尝试使用上述代码来捕获该事件。但是,当我选择文本并且没有真正开始对其进行编辑时,似乎已触发此事件。

有什么想法可以解决这个问题,并检查我是否真的只是在编辑IText?

斯瓦普尼尔·in那

IText对象具有一个称为的属性isEditing,可用于检查对象中的文本是否正在编辑。

为了实现您所说的,您要做的就是在从画布上删除对象之前检查此属性。代码如下:

document.onkeyup = function (e) {
    if (e.keyCode == 46) {
        obj = canvas.getActiveObject();
        if (!obj.isEditing) {
            canvas.remove(obj);
        }
    }
};

这是小提琴:http : //jsfiddle.net/bdgnrnxf/1/并链接到文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Fabric.js:按名称获取对象

来自分类Dev

Fabric.js计数对象

来自分类Dev

Fabric.js-分组的iText不可编辑

来自分类Dev

缩放fabric.js画布对象

来自分类Dev

如何使Fabric.js IText字体不加粗?

来自分类Dev

Fabric JS父子对象

来自分类Dev

如何激活Fabric js IText的光标?

来自分类Dev

在Fabric.js中调整对象大小

来自分类Dev

Fabric JS-IText对象允许调整大小,但不能缩放

来自分类Dev

Fabric.js动画对象/图像

来自分类Dev

对象数据随机更改Fabric.js

来自分类Dev

如何获取Twitter Fabric密钥

来自分类Dev

使用mouse:Fabric JS:覆盖动画对象

来自分类Dev

在Fabric JS中取消选择对象

来自分类Dev

Fabric.js:按名称获取对象

来自分类Dev

Fabric JS-IText对象允许调整大小,但不能缩放

来自分类Dev

在Fabric JS IText和Textbox之间轻松转换?

来自分类Dev

Fabric JS右键单击选择对象

来自分类Dev

fabric.IText的画布问题

来自分类Dev

如何在Itext Fabric JS中删除默认文本

来自分类Dev

Fabric JS中的BringForward

来自分类Dev

fabric.js:通过boundingbox移动对象

来自分类Dev

Fabric JS 对象缩放

来自分类Dev

Fabric.js 从 toDataURL 中删除对象

来自分类Dev

fabric js:对象分组无法正常工作

来自分类Dev

获取fabric js中所选对象的z-index

来自分类Dev

Fabric js 将 HTML 代码转换为 IText

来自分类Dev

画布旋转 - Fabric js

来自分类Dev

Fabric js禁用对象取消选择