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

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

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

Регистрация: Jun 2011
Сообщений: 212
По умолчанию Проблема использования s:Image внутри s:ItemRenderer

Если реализовать стандартный пример “список изображений” типа http://blog.flexexamples.com/2008/03...elist-control/
но с использованием spark, то возникает проблема вывода картинок при таком синтаксисе:

Код AS3:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
				xmlns:s="library://ns.adobe.com/flex/spark"
				width="165" height="200" opaqueBackground="0xEFEFEF">	
	<s:Label  text="{XML(data).@title}"/>
	<s:Image id="img" source="{XML(data).@thumb}" />
</s:ItemRenderer>
А именно:
  • {XML(data).@title} - отображается нормально (в компоненте s:Label)
  • {XML(data).@thumb} - вообще не отображается (в компоненте s:Image)


При этом без проблем работает две конструкции (при тех же самых параметрах для s:List, при том же самом dataProvider)

1. Оригинальная конструкция из примера (mx:Box вместо s:ItemRenderer и mx:Image вместо s:Image):

Код:
<mx:Box xmlns:fx="http://ns.adobe.com/mxml/2009"
				xmlns:s="library://ns.adobe.com/flex/spark"
				xmlns:mx="library://ns.adobe.com/flex/mx"
				width="165" height="200" opaqueBackground="0xEFEFEF">
	<s:Label  text="{XML(data).@title}" />
	<mx:Image id="img" top="5" width="150" height="150" horizontalCenter="1"
		source="{XML(data).@thumb}" />
</mx:Box>

2. Использование функции в качестве значения img.source:

Код AS3:
<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"
				width="165" height="200" opaqueBackground="0xEFEFEF">
 
	<fx:Script>
		<![CDATA[
			protected function dummyfunc(fn:String):String {
				return fn;
			}
		]]>
	</fx:Script>
 
	<s:Label  text="{XML(data).@title}" />
	<s:Image id="img" source="{dummyfunc(XML(data).@thumb)}" />
</s:ItemRenderer>

Кстати, почему-то не работает такой вариант (http://www.flasher.ru/forum/showthread.php?t=164062):
Код AS3:
override public function set data(value:Object):void {
	img.source = XML(value).@thumb; 
	trace(XML(value).@thumb);
	super.data = value;
}


Так или иначе тема поднимается регулярно (например здесь http://www.flasher.ru/forum/showthread.php?t=157149 и здесь http://www.flasher.ru/forum/showthread.php?t=164062).

Но "фундаментального" ответа на вопрос:
почему s:ItemRenderer + s:Image не может использовать xml-привязку в source, а mx:Box + mx:Image может?
я не нашел.

Может кто подскажет?


Последний раз редактировалось trng; 21.09.2011 в 02:04.
Создать новую тему   Часовой пояс GMT +4, время: 07:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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