繁体   English   中英

如何使用fabric js一一选择画布上的所有对象?

[英]How do I select ALL objects on canvas one by one with fabric js?

代码如何使用 fabric js 一一选择当前画布上的所有对象。 我试图一一列出每个对象的属性,但不知道画布上有多少个对象(如果有)。

为了澄清:

这是一个https://jsfiddle.net/3bxLmwzk/

var canvas = new fabric.Canvas('canvas');

canvas.add(new fabric.Text('hdgh', { 
    left: 20,
    top: 30, 
    fontFamily: 'Comic Sans MS',
    fontSize: 35
}));

canvas.add(new fabric.Text('foo', { 
  fontFamily: 'Roboto', 
  left: 100, 
  top: 100,
  fontSize: 25
}));

canvas.add(new fabric.Text('f776h', { 
  fontFamily: 'Arial', 
  left: 200, 
  top: 200,
  fontSize: 25
}));

有 3 个对象......有没有办法可以在每个文本对象的控制台日志(文本、fontFamily 和 fontSize)上打印)

1 个对象 - 'hdgh' ; Comic Sans MS ; 35 2 对象 - 'foo' ; 机器人; 25 3 对象 - 'f776h' ; 宋体 25

一旦你有了一个 fabric 对象,你就可以调用fabric.getObjects()来获取所有的对象。 您可以向它传递一个字符串,该字符串可以包含一个类型(如“文本框”或“圆圈”),并且它只会返回该类型的对象。

拥有对象后,您可以按如下方式循环它们:

let objects = fabric.getObjects(); //return Array<objects>
objects.forEach(object=>{
    //list the attributes for each object
    console.log(object.text, object.fontFamily, object.fontSize);
});

如果没有更好地描述您正在尝试做什么,这就是您可以做的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM