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

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

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

Регистрация: Dec 2009
Адрес: Беларусь г.Минск
Сообщений: 90
Отправить сообщение для Лир с помощью Skype™
По умолчанию List и data.name

Доброго всем времени суток, недавно взялся за освоение Flex и столкнулся с проблемой. Пытаюсь создать свой компонент на основе List, в компоненте картинка и напротив неё Label - так выглядит одна строка списка. Вот код компонента:
Код AS3:
<mx:List  top="" xmlns:mx="http://www.adobe.com/2006/mxml" width="220" height="500" xmlns:local="*">
 	<mx:itemRenderer>
		<mx:Component>
 
			<mx:Grid >
				<mx:GridRow paddingLeft="10" >
					<mx:GridItem paddingLeft="0" width="1%" paddingTop="8" >
						<local:ButtonForMenu />
					</mx:GridItem>
					<mx:GridItem width="99%">
						<mx:Label text="{data.name}" color="#000000"  />
					</mx:GridItem>
				</mx:GridRow>
			</mx:Grid>
 
		</mx:Component>
	</mx:itemRenderer>
При вызове компонента в приложении вот код:
Код AS3:
<local:MenuList dataProvider="{['Red','Orange','Yellow','Green','Blue','Indigo',
										'Violet']}">
 
	</local:MenuList>
по идее должны браться данные из dataProvider Label-ом, но не берет. Оказалось что если Label находится не в контейнере то данные берутся, а если в контейнере то данные он почему то не видит. Подскажите плз что не так и как с этим бороться?

Старый 24.06.2010, 03:17
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 2  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
А на кой в листе грид? - Неужели не проще вставить Canvas или HBox? - Не будет двоякости в подчиненности коллекций (List -> Grid -> Label)

dataProvider - коллекция стрингов, почему обращение идет data.name? - Где у объектов провайдера такое свойство?

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

Регистрация: Dec 2009
Адрес: Беларусь г.Минск
Сообщений: 90
Отправить сообщение для Лир с помощью Skype™
При вызове компонента в dataProvider передается массив данных, вот
Код AS3:
<local:MenuList dataProvider="{['Red','Orange','Yellow','Green','Blue',
'Indigo','Violet']}"></local:MenuList>
А text="{data.name}" должен передать элементу списка значение из массива, по вашему совету расположил всё на Canvas, однако данные в список всё равно не передаются, из контейнера почему-то не видит это свойство. И какое свойство использовать тогда если не data.name, я прочитал что именно data.name необходим...

Старый 24.06.2010, 23:32
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 4  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
Если бы было:
Код:
<mx:Array id="colors">
    <fx:Object name="Red"/>
    ....
    <fx:Object name="Violet"/>
</mx:Array>
<local:MenuList dataProvider="colors"/>
то можно было бы в рендерере обращаться к свойству name объекта массива (коллекции).
Но в твоем случае передается просто строковый массив.

Поэтому предлагаю (но не настаиваю на правильности):
1. Сделать примерно как я показал и обращаться к нужным свойствам.
или 2. Попробовать использовать просто data (а не data.name)

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

Регистрация: Dec 2009
Адрес: Беларусь г.Минск
Сообщений: 90
Отправить сообщение для Лир с помощью Skype™
Вариант 2 сработал)))) Просто data возвращает данные, супер!! Спасибо вам боольшущее))))!!

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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