自定義Flash的DataGrid組件中字體的外觀

  今天寫了一個CellRenderer,實現自定義Flash的DataGrid組件中字體的外觀,使其支持hmtl格式。文件如下:

文件名:HtmlCellRenderer.as

/****************************************************************************
類名:HtmlCellRenderer
作者:Bob Kang 2007/01/23
****************************************************************************/
class HtmlCellRenderer extends mx.core.UIComponent
{
 private var HtmlLabel;  
 private var owner;     
 private var listOwner; 
 private static var PREFERRED_HEIGHT_OFFSET = 4;
 private static var PREFERRED_WIDTH = 100;
 private var startDepth:Number = 1;

 public function HtmlCellRenderer()
 {
 }

  var c = HtmlLabel = this.createLabel("HtmlLabel", startDepth);
  c.styleName = listOwner;
  c.selectable = false;
  c.tabEnabled = false;
  c.background = false;
  c.border = false;
  c.html=true;
  size();
 }

 public function size():Void
 {
  var c = HtmlLabel;
  c.setSize(__width, __height);
 }


 public function getPreferredHeight():Number
 {
  return owner.__height + PREFERRED_HEIGHT_OFFSET;
 }


 public function setValue(suggestedValue:String, item:Object, selected:Boolean):Void
 {
  if (item==undefined){
   HtmlLabel._visible = false;
  }
  HtmlLabel.htmlText = suggestedValue;
 }
}

用法:myDataGrid.getColumnAt(i).cellRenderer = "HtmlCellRenderer";

效果如圖所示:

發佈了38 篇原創文章 · 獲贊 7 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章