2013-11-28 1 views
2

Я использую Fabric.js для создания холста для рисования. Могу ли я узнать, так или иначе, чтобы получить значение свойств объектов в групповом объекте?Fabric.js: Как получить значение свойства объекта в группе?

Например: я создал прямоугольник и текстовый объект, и сгруппировать их вместе

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

Я попытался, как показано ниже:

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

Но он не получает значение текст для меня. Может кто-нибудь, пожалуйста, дайте совет по этому поводу?

ответ

7

У меня пока нет комментариев, но я вижу пару вещей, которые могут быть причиной этого. Без дополнительного кода мне придется принять пару вещей.

Прежде всего, при создании новой группы вам необходимо загладить объект Fabric.

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

Во-вторых, если у вас нет, вам нужно добавить свою группу в холст

canvas.add(group); 

Я уверен, что вы сделали, что в вашем коде, но да. Затем мы можем добраться до хорошего материала ...

Ваш цикл for захватывает все объекты на холсте, не так ли? Оказывается, если ваш объект находится в группе, то вы захватываете эту группу, а не отдельные объекты внутри. Вам необходимо выполнить итерацию всех объектов в этой группе, чтобы получить от них какие-либо свойства.

Я сделал быструю скрипку, чтобы посмотреть, смогу ли я заставить ее работать. Это должно дать вам представление о том, что вам нужно сделать.

http://jsfiddle.net/pUw5k/

+0

Спасибо за пример подробно в вашей скрипке! – PaulLing

+0

скрипка была удивительной помощью! –

3

Вы можете доступ к отдельным объектам в группе с помощью пункта() метод:

Для примера:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^