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

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

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

Регистрация: Mar 2011
Адрес: Уфа
Сообщений: 95
Отправить сообщение для Welcometo с помощью ICQ
По умолчанию Свой ItemRenderer

Здравствуйте, пытаюсь сделать ItemRenderer наподобие этого: http://imglink.ru/show-image.php?id=...4e334eed4191f9
Наследую класс LabelItemRenderer и дополняю его (как в рендерере из рисунка) следующими элементами: SkinnableContainer1, image, label1, label2. Ниже написан код этого рендерера, все что делал сам - выделил красным, остальное сделал Flash Builder . Подскажите что не так? первая ошибка - не отображается датапровайдер, пишет [Object], т.е. не задано свойство labelField, только как его задать для кастомного рендерера? Ну и без этого там немало ошибок, наверно.
Код:
package renderer
{
	public class listRender extends LabelItemRenderer
	{
		
		private var img:Image;
		private var label1:Label;
		private var skinnableContainer1:SkinnableContainer;
		private var label2:Label;
		
		public function listRender()
		{
			super();
			skinnableContainer1= new SkinnableContainer();
			
			img = new Image();
			skinnableContainer1.addElement(img);
			
			label1 = new Label();
			skinnableContainer1.addElement(label1);
			
			label2 = new Label();
			skinnableContainer1.addElement(label2);
		}
		
		override public function set data(value:Object):void
		{
			super.data = value;
			img.source = value.img;
			label1.text = value.text;
			label2.text = value.text2;    		
		} 
		
		override protected function createChildren():void
		{
			super.createChildren();
		}
		
		override protected function measure():void
		{
			super.measure();
			skinnableContainer1.measuredHeight = 120;
			skinnableContainer1.measuredWidth = 120;
			
			img.measuredHeight = 32;
			img.measuredMinWidth =  32;
			
			label1.setStyle("fontSize", 15);
			label2.setStyle("fontSize", 11);
			
	          }
		
		override protected function drawBackground(unscaledWidth:Number, 
									   unscaledHeight:Number):void
		{
			super.drawBackground(unscaledWidth, unscaledHeight);
                                  skinnableContainer1.setStyle('backgroundColor',0x333333);
			
		
		}
		
		override protected function layoutContents(unscaledWidth:Number, 
										   unscaledHeight:Number):void
		{
			super.layoutContents(unscaledWidth, unscaledHeight);
			skinnableContainer1.layout = new HorizontalLayout();
			  		
		}
		
	}
}
Датапровайдер примерно такой
Код:
<fx:Object text="Стратегия" text2="ccccccccccccccccc" img="../assets/11.png"/>
				<fx:Object text="Модель" text2="bbbbbbbbb" img="../assets/22.png"/>
				<fx:Object text="Flex" text2="aaaa" img="../assets/33.png"/>


Последний раз редактировалось Welcometo; 13.08.2011 в 16:03.
Старый 14.08.2011, 01:12
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 2  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
почему не в мх коде ?
Код 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"
				width="110" height="75">
 
	<fx:Script>
		<![CDATA[
 
			public override function set data(value:Object):void
			{
				thumbImage.source =value.image; 
 
				super.data = value;
 
			}
		]]>
	</fx:Script>
 
	<s:Image id="thumbImage" buttonMode="true"
			 right="0" top="0" left="10" bottom="0"
			 smooth="true" smoothingQuality="high"/>
 
        <s:Label text="{data.text}">
 
         <s:Label text="{data.text2}">
 
</s:ItemRenderer>

Старый 14.08.2011, 03:35
Welcometo вне форума Посмотреть профиль Отправить личное сообщение для Welcometo Найти все сообщения от Welcometo
  № 3  
Ответить с цитированием
Welcometo

Регистрация: Mar 2011
Адрес: Уфа
Сообщений: 95
Отправить сообщение для Welcometo с помощью ICQ
ShockWave512, спасибо, я разобрался.

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

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

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


 


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


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