Fabric.js:如何获取组中对象的属性值?

Pau*_*ing 2 javascript canvas fabricjs

我正在使用Fabric.js来创建绘图画布.我是否知道有没有获得组对象中属性的属性值?

例如:我创建了一个矩形和一个文本对象,并将它们组合在一起

new fabric.group([rect1,text1],{
        top:100,
        left:100
    });
Run Code Online (Sandbox Code Playgroud)

我尝试过如下:

var objsInCanvas = canvas.getObjects();
for (obj in objsInCanvas) {
    return objsInCanvas[obj].get('text')
}
Run Code Online (Sandbox Code Playgroud)

但它并没有为我获得文本的价值.有人可以就此提出建议吗?

小智 7

我还没有足够的回复评论,但我可以看到一些可能导致这种情况的事情.没有更多的代码,我将不得不承担一些事情.

首先,在实例化新组时,需要将Fabric对象大写.

var group = new fabric.Group([rect1, text1],{
  ...    
});
Run Code Online (Sandbox Code Playgroud)

其次,如果还没有,则需要将您的组添加到画布

canvas.add(group);
Run Code Online (Sandbox Code Playgroud)

我确定你在代码中做到了,但是呃.然后我们可以找到好东西......

你的for循环抓住了画布上的所有对象,对吧?事实证明,如果您的对象在一个组中,那么您将抓取该组本身,而不是其中的单个对象.您还需要迭代该组中的所有对象以从中获取任何属性.

我做了一个快速的小提琴只是为了看看我是否能让它运转起来.它应该让你知道你需要做什么.

http://jsfiddle.net/pUw5k/