![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 120
|
Всем здрасти.
Поиск не помог У меня такой вопрос. Как добавлять кастомные mxml компоненты в другие компоненты? Например у меня есть контейнер который содержит блоки с новостями. Как динамически добавлять новость после клика на кнопку (виды новостей (компонентов) могут отличатся)? Если бы тип новости был только один, то всё бы решалось например через repeater и ArrayCollection. Но вот как добавить в контейнер или repeater другой компонент? Или как возможно проверить какой компонент показывать? Надеюсь суть вопроса ясна ![]() |
|
|||||
|
Используй лист в котором используй свой рендерер с несколькими состоянимями. Для каждого состояния отображай только один компонент. А имя состояния можешь определять по типу данных передаваемых в set data(..).
Это самый простой вариант. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 120
|
Цитата:
Создал List в main application: <mx:List id="latestActions" dataProvider="{lastActionsProvider}" selectable="false" itemRenderer="components.historyBoxRenderer" width="100%" height="100%" /> <?xml version="1.0" encoding="utf-8"?> <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%"> <mx:Script> <![CDATA[ private var _data:Object; override public function set data(value:Object):void { _data = value; removeAllChildren(); var hist_box:historyBox = new historyBox(); hist_box.selectedIndex = value.type; addChild(hist_box); //hist_box.news_txt.text = value.txt; !!!! Ошибка } override public function get data():Object { return _data; } ]]> </mx:Script> </mx:HBox> <?xml version="1.0" encoding="utf-8"?> <mx:ViewStack xmlns:mx="http://www.adobe.com/2006/mxml" width="100%"> <mx:HBox id="s1" backgroundColor="{parentDocument.panelInsideColor}"> <mx:Text width="100%" id="news_txt" text="text" /> </mx:HBox> <mx:HBox id="s2"> <mx:Text width="100%" id="news_txt2" text="text" /> </mx:HBox> </mx:ViewStack> ![]() Последний раз редактировалось NeMeN; 06.10.2009 в 18:55. |
|
|||||
|
Во первых в set data не забывай делать
super.data=value Во-вторых есть подозрение, что value == null Сделай проверку на не null |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 120
|
value != null, т.к. selectedIndex срабатывает как надо в зависимости от value.type. Проблема как раз в hist_box.news_txt, т.к. даже hist_box.news_txt.text = "xxx"; не работает. А почему именно не работает вообще идей нет.
Добавлено через 13 минут нашёл в чём проблема, для ViewStack нужно прописать creationPolicy="all" ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|