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

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

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

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Вообще не совсем понятно.

Дело в том что дата провайдер содержит в себе объекты, которые передаются ячейкам, тоесть дата провайдер не содержит в себе информации для самой колонки.

Есть два способа, либо реализовать возможность смены цвета у каждой ячейки в отдельности (тогда нужно передавать, каждой ячейке цвет), либо вывести цвета в отдельное свойство.

Есть вариант через задницу, это задавать цвет скажем только первому эллементу в колонке, и остальные ячейки берут значение первого эллемента.

Вот например если юзать отдельное свойство colors

Код:
package controls
{
	import mx.controls.DataGrid;
	import mx.core.ClassFactory;
	import mx.collections.ArrayCollection;
	import mx.controls.dataGridClasses.DataGridColumn;

	public class ColoredDataGrid extends DataGrid
	{
		private var _colors:Array;
		
		public function ColoredDataGrid()
		{
			super();
			
			itemRenderer = new ClassFactory(ItemRenderer);
		}
		[Bindable]
		[Inspectable]
		public function set colors(value:Object):void
		{
			if(value is ArrayCollection)
			{
				_colors = (value as ArrayCollection).source;
			}
			else if(value is Array)
			{
				_colors = value as Array;
			}
			
			for (var i:Number = 0; i < _colors.length; i++)
			{
				if(columns[i] != null)
				{
					(columns[i] as DataGridColumn).setStyle("backgroundColor", _colors[i]);
				}
			}
		}
		public function get colors():Object
		{
			return _colors
		}
	}
}
	import mx.controls.Label;
	import controls.ColoredDataGrid;
	import mx.controls.dataGridClasses.DataGridListData;
	

class ItemRenderer extends Label
{
	override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
	{
		super.updateDisplayList(unscaledWidth, unscaledHeight);
		
		var ld:DataGridListData = listData as DataGridListData;
		var dg:ColoredDataGrid  = ld.owner as ColoredDataGrid;
		
		trace(ld.rowIndex);
		trace(this.text);
		trace("");
		
		/*if(ld.rowIndex > 0 && dg.colors != null && dg.colors[ld.columnIndex] != null)
		{
			graphics.beginFill(dg.colors[ld.columnIndex]);
			graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
			graphics.endFill();
		}*/	
	}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 01.02.2007 в 22:36.
Создать новую тему   Часовой пояс GMT +4, время: 14:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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