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

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

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

Регистрация: Jun 2005
Сообщений: 34
По умолчанию DataGrid and CellRender

в общем как известно чтобы компоненте dataGrid столбцу присвоить какой нибудь стиль

какой_то_столбец_в_компоненте.cellRenderer = Сoloritems

где coloritems у меня класс который делает текстформат для текста в столбце. собственно класс (уж не обессудьте что в нем что то очень коряво,я не волшебник - я всего лишь учусь

Код:
package {

    import fl.controls.listClasses.CellRenderer;
    import flash.text.TextFormat;
    import flash.text.TextFormatAlign;

    /**
	  Класс работает с текстом в отдельно взятой ячейке
     */
    public class Coloritems extends CellRenderer /*implements ICellRenderer*/ {
       
		
		public static var _aFormats:Array = [new TextFormat("SF TransRobotics Bold",16,0x00FF00),
 											 new TextFormat("SF TransRobotics Bold",16,0xC27005),
											 new TextFormat("SF TransRobotics Bold",16,0xFF9C00),
											 new TextFormat("SF TransRobotics Bold",16,0xFFBE36),
											 new TextFormat("SF TransRobotics Bold",16,0xFFFC12),
											 new TextFormat("SF TransRobotics Bold",16,0xBEBEBE)];

       
        public function Coloritems() {
       	     
        }

       
		 
		 public function checkColor():void {
			trace(this._parent);
			if(_listData.index ==0){
				textField.setTextFormat(_aFormats[0]);
			} else if(_listData.index<10){
					textField.setTextFormat(_aFormats[1]);
				} else if (_listData.index <20) {
						textField.setTextFormat(_aFormats[2]);
					} else if (_listData.index<40) {
							textField.setTextFormat(_aFormats[3]);
					    } else if( _listData.index<50) {
								textField.setTextFormat(_aFormats[4]);
							} else if (_listData.index<100) {
									textField.setTextFormat(_aFormats[5]);
								}
					
		 }

		 
		 
        override protected function drawLayout():void {
			checkColor();
            super.drawLayout();
        }
		
    }
}
собственно суть проблемы. у меня будет несколько столбцов (и возможно еще одна датагрид) но текстформат для этих столбцов будет отличаться от этого , который в данный момент находится в статичном свойстве.
поискал по форумам наткнулся на ссылку http://www.adobe.com/devnet/flash/qu.../datagrid_pt3/

как видно в последнем примере там _listData.index это ссылка на строку в столбце для которого этот cellRenderer применен. мне же нужно обратиться из класса ColorItems непосредственно к столбцу (и мож быть в дальнейшем и к датагриду) к которому он применен. подскажите как это сделать или киньте ссылку - почитаю разберусь.
это нужно для того чтобы не писать мне 10 классов на каждый cellRenderer для столбца а сделать метод ( а можно даже изменить checkColor() в данном классе чтобы она проверяла имя столбца и в зависимости от его имени вешала на текст в этом слобце определенный текстформат)
заранее спасибо.
__________________
Автор благодарит алфавит за предоставленые буквы.

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

Регистрация: Jun 2005
Сообщений: 34
все разобрался.
вот этот объект _listData у него помимо свойства index есть свойство column а за объект к столбцу которого приклеен cellRenderer отвечает свойство owner.
всем сорри за беспокойство и спасибо за внимание
__________________
Автор благодарит алфавит за предоставленые буквы.


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

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

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


 


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


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