PDA

Просмотр полной версии : динамическое создание лабелов


elendor
09.05.2009, 00:24
Допустим имеется такой ответ от сервера:
<response>
<item>Response 1</item>
<item>Response 2</item>
<item>Response 3</item>
<item>Response 4</item>
<item>Response 5</item>
<item>Response 6</item>
</response>
В mxml имеем VBox и в этом VBox'e надо динамически создать 6(в данном случае) лабелов с текстом из <item>
Пробовал через forEach, но ничего не вышло(использовал addChild)
Я только 3 день изучаю флекс и as. прошу помощи на счет этого вопроса.

Geba
09.05.2009, 01:08
Можно попробовать так

var doc:XML=
<response>
<item>Response 1</item>
<item>Response 2</item>
<item>Response 3</item>
<item>Response 4</item>
<item>Response 5</item>
<item>Response 6</item>
</response>;
for each (var item:XML in doc.item)
{
var label:Label=new Label();
label.text=item.toString();
testVBox.addChild(label);
}
// testVBox это <mx:VBox id="testVBox"/>

elendor
09.05.2009, 02:32
спасибо, работает. но бывают случаю когда id не известно :)

Geba
09.05.2009, 02:43
спасибо, работает. но бывают случаю когда id не известно :)

Это как?;) Добавить в никуда? Что-то же должно быть известно о месте назначения))

elendor
09.05.2009, 09:53
Ну например если этот самый vbox выступает в качестве компонента

Geba
09.05.2009, 13:10
Ну например если этот самый vbox выступает в качестве компонента

Если Вы создали компонент на основе VBox, тогда всё тоже самое, только добавление происходит такthis.addChild(label);