Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   DataGrid and CellRender (http://www.flasher.ru/forum/showthread.php?t=102102)

uncle_sam 09.10.2007 01:42

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() в данном классе чтобы она проверяла имя столбца и в зависимости от его имени вешала на текст в этом слобце определенный текстформат)
заранее спасибо.

uncle_sam 09.10.2007 18:06

все разобрался.
вот этот объект _listData у него помимо свойства index есть свойство column а за объект к столбцу которого приклеен cellRenderer отвечает свойство owner.
всем сорри за беспокойство и спасибо за внимание ;)


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

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