如何识别所选对象的类型

How to identify the type of a selected object?

本文关键字:对象 类型 何识别 识别      更新时间:2023-09-26

我正在使用Fabric.js将文本,图像和形状放置在画布上。我为这三个制作了三个不同的编辑面板。当用户选择文本时,我想显示文本面板。就像图像和形状一样明智。

如何识别所选对象的类型?

canvas.getActiveObject().get('type')正如Simmi

Simmi所说是正确的。您还可以收听事件:

function onObjectSelected(e) {
  console.log(e.target.get('type'));
}
canvas.on('object:selected', onObjectSelected);

我使用以下代码解决了这个问题:

  if(canvas.getActiveObject().get('type')==="text")
        {
            //Display text panel
            console.log('text panel Displayed');
            $("#Image_left_panel").css("display", "none");
            $("#shape_left_panel").css("display", "none");
            //$("#left_panel").css("display", "block");
        }
        else if(canvas.getActiveObject().get('type')==="Image")
        {
            //Display Image Panel
            console.log('Image Panel Displayed');
            $("#Image_left_panel").css("display", "block");
            $("#shape_left_panel").css("display", "none");
            $("#left_panel").css("display", "none");
        }
        else
        {
        }

        });

> 尝试isType()

用于获取选定对象的示例函数

function onObjectSelected(o){
    //activeObject = canvas.getActiveObject()
    activeObject = o.target;
    if(activeObject.isType('text')){
       //display text logic
    }
    else if(activeObject.isType('image')){
      //display image
    }
    else if( activeObject.isType('xyz')){
      //display shape logic
    }
}
canvas.on('object:selected', onObjectSelected);

在fabricjs 3.4及更高版本中,要获取对象类型,只需使用:

var objType = canvas.getActiveObject().type;

在 IText 对象上,上面将返回:i-text

在图像上,它将返回:图像

用法:

调用以下函数,该函数添加额外的检查以确保类型是活动元素的属性。

注意:并非所有元素都具有 type 属性。

 canvas.on('object:selected', onObjectSelected);
 function onObjectSelected() { 
     // check if type is a property of active element
     var objType = (canvas.getActiveObject().type ? canvas.getActiveObject().type : "");
     // your code to process the object
}