欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flex3.0 的皮肤  

程序员文章站 2022-03-02 16:57:01
...

1.写一个皮肤类,重新绘制背景

package com.component.checkboxdatagrid
{
 import com.hr.organization.view.Matrix;
 
 import flash.display.BitmapData;
 import flash.display.Graphics;
 import flash.display.Loader;
 import flash.display.Sprite;
 import flash.events.MouseEvent;
 import flash.geom.Matrix;
 import flash.geom.Rectangle;
 import flash.net.URLRequest;
 
 import mx.controls.Alert;
 import mx.graphics.BitmapFill;
 import mx.skins.ProgrammaticSkin;
 import mx.states.SetStyle;
 
 import org.alivepdf.fonts.Style;
 
 public class Ucskin extends ProgrammaticSkin
 {
  [Bindable]
  [Embed(source="com/hr/assets/common/11.png")]//绑定图片
  private static var Left_Up_Corner:Class;
  public function Ucskin()
  {
   super();
  }
  override public function get measuredWidth():Number {
   return 0;
  } 
  override public function get measuredHeight():Number {
   return 10;
  } 
  override protected  function updateDisplayList(w:Number, h:Number):void {//
   var borderColor:uint = getStyle("borderColor");
   var g:Graphics = graphics;
   var luc:BitmapData = new Left_Up_Corner().bitmapData;
   g.beginBitmapFill(luc,null,false,false);
   g.moveTo(0,0);
   g.lineStyle(1,borderColor);
   g.lineTo(0,h);
   
   g.drawRect(1,1,16,16);
   
   g.endFill();
   
   g.moveTo(16,h);
   g.lineStyle(1,borderColor);
   g.lineTo(0,h);
   this.addEventListener(MouseEvent.CLICK,cl);//添加方法,但是知道flex3.0皮肤是不支持用户互动的。。。所以没用。
   
   
   /*var g:Graphics = graphics;
   //g.beginBitmapFill(myBitmap);
   g.moveTo(0,0);
   g.lineStyle(1,borderColor);
   g.lineTo(0,h);*/
  }
  private function cl(evt:MouseEvent):void{
   Alert.show("sssssssssss");
  }
 }
 
}

2.使用

<mx:DataGrid

headerSeparatorSkin=“com.component.checkboxdatagrid.Ucskin ”

/>

完成了