阳信县教育局:AS3自定义Datagrid控件的样式(以下举例字体样式)

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 06:23:07

样式定义var htf:TextFormat = new TextFormat("verdana", 12, 0xFFCC00);   

表头样式设置 filelist.setStyle("headerTextFormat",htf);

单元格样式设置 filelist.setRendererStyle("textFormat",htf);

很简单

本文内容就直接转载笑熬浆糊 (http://www.beus.cn)的文章了:

包括自定义header和cell的样式。以下m_dg为DataGrid控件。

1、header样式
m_dg.setStyle("headerRenderer", DatagridHeaderStyle);

新建DatagridHeaderStyle类,代码如下:

package beus{
 import fl.controls.dataGridClasses.HeaderRenderer;
 import flash.text.TextFormat;  public class DatagridHeaderStyle extends HeaderRenderer {   public function DatagridHeaderStyle():void {
   super();
  }  override protected function drawBackground():void {
   var format:TextFormat = new TextFormat();
   format.font = "SimSun";//字体为宋体
   format.bold = true;//加粗
   format.size = 12;//大小为12
   format.color = 0x333333;//颜色
   setStyle("textFormat",format);
   super.drawBackground();  }
}

2、cell样式
m_dg.setStyle("cellRenderer", DatagridCellStyle);

新建DatagridCellStyle类,代码如下:

package beus{
 import fl.controls.listClasses.CellRenderer;
 import fl.controls.listClasses.ICellRenderer;
 import flash.text.TextFormat;  public class DatagridCellStyle extends CellRenderer implements ICellRenderer {   public function DatagridCellStyle():void {
   super();
  }   override protected function drawBackground():void {
   var format:TextFormat = new TextFormat();
   format.font = "Simsun";
   format.size = 12;
   format.color = 0x333333;
   setStyle("textFormat",format);
   super.drawBackground();  }
}

3、设置每行交替颜色显示
打开库文件面板,参照Component Assets / CellRendererSkins / CellRenderer_upSkin,根据此Skin新建一个CellRenderer_upSkinGray元件,把颜色修改一下,保存到Component Assets / CellRendererSkins / 中,并设置链接类为CellRenderer_upSkinGray。

m_dg.setStyle("cellRenderer", DatagridCellStyle);

新建DatagridCellStyle类,代码如下:

package beus{
 import fl.controls.listClasses.CellRenderer;
 import fl.controls.listClasses.ICellRenderer;
 import flash.text.TextFormat;

 public class DatagridCellStyle extends CellRenderer implements ICellRenderer {

  public function DatagridCellStyle():void {
   super();
  }

  override protected function drawBackground():void {
   if (_listData.index % 2 == 0) {
    setStyle("upSkin", CellRenderer_upSkinGray);
   } else {
    setStyle("upSkin", CellRenderer_upSkin);    super.drawBackground();  }
}

看了后发现这样作真方便.

对于headerText的样式有直接的方法:dataGrid.setStyle("headerTextFormat", myFormat);

来源于:http://it.chinawin.net/softwaredev/article-51cf.html