1.flex4.5以前的写法 例如改变mx:datagrid 的字体颜色
package com.qijinsoft.common{ /** * 为mx:itemRenderer提供字体色彩改变 * * */ import mx.controls.Label; import mx.states.SetStyle; public class ColorLabel extends Label { public function ColorLabel() { super(); } override public function set data(value:Object):void { // TODO Auto Generated method stub super.data = value; if(value.hasOwnProperty('color')){ this.setStyle('color',0xff00cc);//设置颜色 } } }}
var col1 : DataGridColumn = new DataGridColumn;col1.dataField = 'name';col1.headerText = '物品名称';col1.itemRenderer = new ClassFactory(ColorLabel);
2.flex4.5以后 s:datagrid设置字体颜色
package com.qijinsoft.common{ import spark.components.Label; import spark.components.gridClasses.GridItemRenderer; import spark.skins.spark.DefaultGridItemRenderer; /** * 为spark的itemrender 定义字体的颜色设定 * * */ public class SColorLabel extends DefaultGridItemRenderer { private var _color:uint; public function SColorLabel() { super(); } public function get color():uint { return _color; } public function set color(value:uint):void { _color = value; } override public function set data(value:Object):void { // TODO Auto Generated method stub super.data = value; this.setStyle('color',color); } }}
//初始化表格字段 var column1:GridColumn = new GridColumn; column1.dataField = 'name'; column1.headerText = '名称'; column1.width = 200; var factory : ClassFactory = new ClassFactory(SColorLabel); factory.properties = {color:Color.blue};//注意这个color属性对应SColorLabel中的color的set/get方法 column1.itemRenderer = factory;