Показать сообщение отдельно
Старый 18.09.2009, 12:07
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 9  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Код AS3:
import fl.controls.listClasses.CellRenderer;
import fl.controls.List;
import fl.data.DataProvider;
import fl.events.ListEvent;
import flash.display.Sprite;
import flash.events.Event;
 
var dp:DataProvider = new DataProvider();
var totalEntries:Number=42;
var i:Number;
for (i=0; i<totalEntries; i++) {
	var dt={label:"Math.random(): "+Math.random(),data:null};
	if (i==4) {
		dt.setColor=true;
	}
	dp.addItem( dt);
}
 
var myList:List = new List();
myList.setSize(300,300);
 
myList.setStyle('cellRenderer', Renderer);
myList.dataProvider=dp;
 
addChild(myList);
 
 
 
 
package
{
    import fl.controls.LabelButton;
    import fl.controls.listClasses.ICellRenderer;
	import fl.controls.listClasses.CellRenderer;
    import fl.controls.listClasses.ListData;
	import flash.display.Shape;
	import flash.text.TextField;
 
    public class Renderer extends CellRenderer implements ICellRenderer {
        public function Renderer() {
		}
 
        override public function set listData(newListData:ListData):void {
            super.listData = newListData;
 
         }
 
        override public function get listData():ListData {
            return _listData;
        }
 
         override public function set data(newData:Object):void {
            _data = newData;
			  if (newData.setColor != undefined) {
				//Меняем стиль ячейки
				setStyle("upSkin", CellBackgr);				  
			  }else {
				// здесь задаем стандартный, иначе некоторые ячейки не обновятся.
				  	setStyle("upSkin", CellRenderer_upSkin);
				}
        }
 
       override  public function get data():Object {
            return _data;
        }
    }
 
 
 
}
 
import flash.display.LineScaleMode;
import flash.display.Shape
class CellBackgr extends Shape {
 
		public function CellBackgr() {
			graphics.beginFill(0xFF7700)
			graphics.drawRect(0, 0, 100, 15);
			graphics.endFill()
			}
}
Лучше конечно вместо CellBackgr сделать копию CellRenderer_upSkin и изменить как нужно.

У ListData есть свойство row, можно и к нему привязываться. Но мне кажется удобнее через data. Хотя опять же от задачи зависит.