簡體   English   中英

Fabric.js:如何獲取組中對象的屬性值?

[英]Fabric.js: How to get the properties' value of the object in a group?

我正在使用Fabric.js來創建繪圖畫布。 我是否知道有沒有獲得組對象中屬性的屬性值?

例如:我創建了一個矩形和一個文本對象,並將它們組合在一起

new fabric.group([rect1,text1],{
        top:100,
        left:100
    });

我嘗試過如下:

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

但它並沒有為我獲得文本的價值。 有人可以就此提出建議嗎?

我還沒有足夠的回復評論,但我可以看到一些可能導致這種情況的事情。 沒有更多的代碼,我將不得不承擔一些事情。

首先,在實例化新組時,需要將Fabric對象大寫。

var group = new fabric.Group([rect1, text1],{
  ...    
});

其次,如果還沒有,則需要將您的組添加到畫布

canvas.add(group);

我確定你在代碼中做到了,但是呃。 然后我們可以找到好東西......

你的for循環抓住了畫布上的所有對象,對吧? 事實證明,如果您的對象在一個組中,那么您將抓取該組本身,而不是其中的單個對象。 您還需要迭代該組中的所有對象以從中獲取任何屬性。

我做了一個快速的小提琴只是為了看看我是否能讓它運轉起來。 它應該讓你知道你需要做什么。

http://jsfiddle.net/pUw5k/

您可以通過item()方法訪問組中的單個對象:

例如:

group.item(0).set({
  text: 'trololo',
  fill: 'white'
});  //Retrieve item(0) and sets its properties

group.item(1).setFill('red'); ////Retrieve item(1) and sets its properties

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM