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

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

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

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
По умолчанию Spark List в котором 1 элемент не такой как все

Привет.
Приходят данные, которые необходимо вывести как список. Использую Spatk List.
Все элементы, кроме одного, выглядат как обычные текстовые ссылки. А один отличается, имеет 1 картину, и 2 текстовых поля.
Вид такой:
Код:
[Image, TextField, TextField]
[TextField]
[TextField]
[TextField]
[TextField]
...
[TextField]
Вопрос в том, как реализовать этот отличающийся элемент?
Идея такова. Сделать катостомный ItemRenderrer и с двумя states: normal и advanced

Потом менять внешний вид первого элемента так:
Код AS3:
this.list.getChildAt(0).currentState = 'advanced';
Но мне кажется, что есть метод по изящнее.

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Идея такова. Сделать катостомный ItemRenderrer и с двумя states: normal и advanced

переопределить set data, и там все менять
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Сделал так, как Вы порекомендовали.
Столкнулся с проблемой, картинку не видно, как будто curretnState == normal, но это не так. Где я не прав?
Ниже код:
ArrayCommection:
Код AS3:
 
<s:ArrayCollection id="data">
    <s:source>
	<fx:Object imagePath="imagePath" label="Title" body="Text text text text text text text text" />
	<fx:Object label="Title2" 	videoID="38" />
	<fx:Object label="Title3" 	videoID="38" />
	<fx:Object label="Title4" 	videoID="38" />
	<fx:Object label="Title5" 	videoID="38" />
	<fx:Object label="Title6" 	videoID="38" />
	<fx:Object label="Title7" 	videoID="38" />
	<fx:Object label="Title8" 	videoID="38" />
    </s:source>
</s:ArrayCollection>
List:
Код AS3:
<s:List
	id="list"
	width="100%" height="100%"
	contentBackgroundAlpha="0.0" borderAlpha="0.0"
	dataProvider="{this.data}"
	itemRenderer="pages.newsPage.NewsPageGalleryIR">
</s:List>
pages.newsPage.NewsPageGalleryIR:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
				xmlns:s="library://ns.adobe.com/flex/spark" 
				xmlns:mx="library://ns.adobe.com/flex/mx" 
				autoDrawBackground="false">
	<fx:Script>
		<![CDATA[
			override public function set data(value:Object):void
			{				
				//
				if(value.imagePath) currentState = 'advanced';
				super.data = value;			
 
				trace(this.currentState); // Трейс срабатывает, значит сюда попадаем
                                trace(this.image); // null - всегда, даже если this.currentState == 'advanced';
 
			}
		]]>
	</fx:Script>
 
	<s:states>
		<s:State name="normal" />
		<s:State name="advanced" />
	</s:states>
 
	<s:Label text="{data.label}"/>
	<s:Image 
                id="image"
		source="www.image.com/image.png"
		includeIn="advanced"
		/>
 
</s:ItemRenderer>


Последний раз редактировалось Art_133; 16.08.2011 в 18:45.
Старый 16.08.2011, 18:47
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
List#itemRendererFunction
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 16.08.2011, 18:51
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 5  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Да, я это был план B, но почему не работает первый вариант? Что я не так делаю?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
trace(this.image); // null - всегда, даже если this.currentState == 'advanced';
Сеттер сработает раньше, чем состояние сменится.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 16.08.2011, 19:08
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 7  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Но почему нет картинки, ведь я её вставил в 'advanced'?
Код AS3:
<s:Image 
                id="image"
		source="www.image.com/image.png"
		includeIn="advanced"
/>

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Протокол добавьте в адрес.
По этому адресу есть картинка?
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 16.08.2011, 19:21
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 9  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Да, картинка есть. "www.image.com/image.png" - для примера.

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

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

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


 


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


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