Javascript 如何对具有fabric js的画布上的每个对象使用if isType()?

Javascript 如何对具有fabric js的画布上的每个对象使用if isType()?,javascript,html,canvas,html5-canvas,fabricjs,Javascript,Html,Canvas,Html5 Canvas,Fabricjs,我试图在画布上显示每个对象的某些属性,但我在编写代码时遇到了困难。例如,我希望下面的代码能够识别形状、文本和图像对象之间的差异,并根据类型显示属性 console.log的属性: 对于canavas上的每个对象,检查- 然后是图像URL(源)和缩放要使其正常工作,需要添加/更改两件事 将对象.isType('xyz')更改为!object.isType('text')&&!object.isType('image')      (因为没有任何称为“xyz”的类型) 在函数中封装获取对象属性的

我试图在画布上显示每个对象的某些属性,但我在编写代码时遇到了困难。例如,我希望下面的代码能够识别形状、文本和图像对象之间的差异,并根据类型显示属性

console.log的属性:

对于canavas上的每个对象,检查-


  • 然后是图像URL(源)和缩放要使其正常工作,需要添加/更改两件事

    • 对象.isType('xyz')
      更改为
      !object.isType('text')&&!object.isType('image')
            (因为没有任何称为“xyz”的类型)
    • 在函数中封装获取对象属性的整个代码,并在图像加载时调用该函数,以正确获取图像对象属性
    fabric.Object.prototype.objectCaching=false;
    var canvas=newfabric.canvas('canvas');
    canvas.add(新的fabric.Text('foo'){
    fontFamily:“机器人”,
    左:100,,
    前100名,
    尺寸:25
    }));
    canvas.add(newfabric.Text('help'){
    fontFamily:“机器人”,
    左:100,,
    前200名,
    尺寸:25
    }));
    画布。添加(新织物。三角形)({
    填充:“绿色”,
    左:200,,
    排名:200
    }));
    fabric.Image.fromURL('http://fabricjs.com/assets/pug_small.jpg,函数(myImg){
    //我为创建了一个额外的变量来更改一些图像属性
    var img1=myImg.set({
    左:200,,
    排名:0,
    宽度:150,
    身高:150
    });
    canvas.add(img1);
    getAttributes();
    });
    canvas.renderAll();
    函数getAttributes(){
    canvas.getObjects().forEach(对象=>{
    如果(!object.isType('text')&&(!object.isType('image')){//对象是一个形状
    log(object.scaleX,object.fill);
    }如果(object.isType('text'){//对象是文本,则为else
    console.log(object.text、object.fontFamily、object.fontSize*3、object.scaleX、object.fill);
    }else如果(object.isType('image'){//对象是一个图像
    log(object.name、object.scaleX、object.fill);
    }
    });
    }
    
    您的浏览器不支持画布元素。
    
    canvas.getObjects().forEach(object=>{
        if(object.isType('xyz')) { // object is a shape
          console.log(object.scaleX, object.fill);
        } else if(object.isType('text')) { // object is a text
          console.log(object.text, object.fontFamily, object.fontSize*3, object.scaleX, object.fill);
        } else { // object is an image
          console.log(object.name, object.scaleX, object.fill);
        }
    })