Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.10.2009, 15:04
NeMeN вне форума Посмотреть профиль Отправить личное сообщение для NeMeN Найти все сообщения от NeMeN
  № 1  
Ответить с цитированием
NeMeN
 
Аватар для NeMeN

Регистрация: Aug 2005
Сообщений: 120
По умолчанию Добавить кастомный mxml компонент в другой компонетн

Всем здрасти.
Поиск не помог У меня такой вопрос. Как добавлять кастомные mxml компоненты в другие компоненты?
Например у меня есть контейнер который содержит блоки с новостями. Как динамически добавлять новость после клика на кнопку (виды новостей (компонентов) могут отличатся)? Если бы тип новости был только один, то всё бы решалось например через repeater и ArrayCollection.
Но вот как добавить в контейнер или repeater другой компонент? Или как возможно проверить какой компонент показывать?
Надеюсь суть вопроса ясна

Старый 06.10.2009, 15:13
Gubber вне форума Посмотреть профиль Отправить личное сообщение для Gubber Посетить домашнюю страницу Gubber Найти все сообщения от Gubber
  № 2  
Ответить с цитированием
Gubber

Регистрация: Sep 2000
Адрес: Россия, Обнинск
Сообщений: 84
Отправить сообщение для Gubber с помощью ICQ
Используй лист в котором используй свой рендерер с несколькими состоянимями. Для каждого состояния отображай только один компонент. А имя состояния можешь определять по типу данных передаваемых в set data(..).
Это самый простой вариант.
__________________
flex vs java
ICQ#65310126

Старый 06.10.2009, 18:53
NeMeN вне форума Посмотреть профиль Отправить личное сообщение для NeMeN Найти все сообщения от NeMeN
  № 3  
Ответить с цитированием
NeMeN
 
Аватар для NeMeN

Регистрация: Aug 2005
Сообщений: 120
Цитата:
Сообщение от Gubber Посмотреть сообщение
Используй лист в котором используй свой рендерер с несколькими состоянимями. Для каждого состояния отображай только один компонент. А имя состояния можешь определять по типу данных передаваемых в set data(..).
Это самый простой вариант.
Спасибо. Столкнулся с ещё одной трудностью:
Создал List в main application:
Код AS3:
<mx:List id="latestActions" dataProvider="{lastActionsProvider}" selectable="false" itemRenderer="components.historyBoxRenderer" width="100%" height="100%" />
historyBoxRenderer:
Код AS3:
<?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>
historyBox:
Код AS3:
<?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>
Проблема состоит в том, что когда в historyBoxRenderer в set data прописываю:
Код AS3:
hist_box.news_txt.text = value.txt;
выдаёт ошибку Cannot access a property or method of a null object reference


Последний раз редактировалось NeMeN; 06.10.2009 в 18:55.
Старый 06.10.2009, 18:56
Gubber вне форума Посмотреть профиль Отправить личное сообщение для Gubber Посетить домашнюю страницу Gubber Найти все сообщения от Gubber
  № 4  
Ответить с цитированием
Gubber

Регистрация: Sep 2000
Адрес: Россия, Обнинск
Сообщений: 84
Отправить сообщение для Gubber с помощью ICQ
Во первых в set data не забывай делать
super.data=value
Во-вторых есть подозрение, что value == null
Сделай проверку на не null
__________________
flex vs java
ICQ#65310126

Старый 06.10.2009, 19:02
NeMeN вне форума Посмотреть профиль Отправить личное сообщение для NeMeN Найти все сообщения от NeMeN
  № 5  
Ответить с цитированием
NeMeN
 
Аватар для NeMeN

Регистрация: 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.