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

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

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

Регистрация: Oct 2004
Сообщений: 30
По умолчанию Свой CellRenderer, как передать параметр конструктору

Добрый %timestamp%
Есть у меня Datagrid, и к нему класс расширяющий CellRenderer (к нему еще прилинован мувик, поэтому не пугайтесь странных переменных в классе). В конструктор этого класса я ничего не передаю:
Код AS3:
package library 
{
 
	import flash.display.MovieClip;
	import flash.display.DisplayObject;
	import fl.controls.listClasses.ICellRenderer;
	import flash.display.Loader;
	 import flash.events.*;
 
 
	public class Add_words_cell extends MovieClip implements ICellRenderer
	{
		  private var _data:Object;
		  private var _listData:ListData;
                  private var _selected:Boolean; 
 
		public function Add_words_cell() 
		{
 
		}
 
 
		public function set data(d:Object):void {
 
			this._data = d;
			this.wordButt.wordText.text = _data.word + " " + _data.part;
 
        }
 
         public function get data():Object {
            return _data;
        }
        public function set listData(ld:ListData):void {
            _listData = ld;
        }
        public function get listData():ListData {
            return _listData;
        }
 
 
        public function set selected(s:Boolean):void { 
            _selected = s; 
        } 
 
        public function get selected():Boolean { 
            return _selected; 
 
        } 
        public function setSize(width:Number, height:Number):void { 
        } 
        public function setStyle(style:String, value:Object):void { 
        } 
        public function setMouseState(state:String):void{ 
        } 
 
	}
 
}
и вот как это привязывается к DataGrid
Код AS3:
		var dataCol:DataGridColumn = new DataGridColumn("data");
			dataCol.cellRenderer = Add_words_cell;
			this.wordsDG.addColumn(dataCol);
А теперь вопрос: я хочу передать параметр конструктору класс который у меня типа cell renderer. Вот что добавляю в конструкторе класса
Код AS3:
public function Add_words_cell(user:Array)
и вот что делаю когда назначаю cellRendere:
Код AS3:
dataCol.cellRenderer = new Add_words_cell(this.user);
но эта схема не срабатывает, так как видимо свойство cellRenderer должно быть классом, а не экземпляром. Как мне передать параметр по нормальному в ячейку не через DataProvider? Просто тупо одинаковый IDшник пользователя передавать в каждой строчке Dataprovider, хочется его один раз впихнуть в Cellrenderer

Старый 13.09.2010, 15:39
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно это свойство определить в кастомном DataGrid (или DataGridColumn),
а в CellRenderer-е брать его из listData.owner (+ listData.column для DataGridColumn)

будет ли это краше, чем тупо передвать в каждой строчке - вопрос..

Старый 13.09.2010, 16:47
Cher80 вне форума Посмотреть профиль Отправить личное сообщение для Cher80 Найти все сообщения от Cher80
  № 3  
Ответить с цитированием
Cher80

Регистрация: Oct 2004
Сообщений: 30
понял спасибо, хороший вариант. Я пока сделал так: мне по выбору значения в клетке надо делать действия, решил слать кастомный евент из клетки с её содержанием в мувик где находится DataGrid

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

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

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


 


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


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