Flex TileList自定義間距和theme樣式
更新時間:2009年06月16日 22:57:10 作者:
使用過TileList的朋友可能知道,該組件沒有Item與Item之間的間距設置。而且theme也沒有辦法象linkbar那樣設置樣式corner-radius改變形狀。
唯一的解決辦法就是重寫TileList組件中drawSelectionIndicator 和drawHighlightIndicator 。
/**
* Author Dante
* Email:rubbish86630@yahoo.com.cn
* CreatedTime:2009.04.13
* Description:
* 該組件實現(xiàn)選中和劃過theme樣式,并且添加間距
* **/
package myLib {
import flash.display.Graphics;
import flash.display.Sprite;
import mx.controls.TileList;
import mx.controls.listClasses.IListItemRenderer;
public class MyTileList extends TileList {
[Bindable]
private var _verticalGap:Number = 0;
[Bindable]
private var _horizontalGap:Number = 0;
public function MyTileList() {
super();
}
/**
* 重寫鼠標劃過高亮
* @indicator:Sprite
* @x:Number
* @y:Number
* @width:Number
* @height:Number
* @color:uint
* @itemRenderer:IListItemRenderer
* return void
* **/
override protected function drawHighlightIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void {
//繪圖
var g:Graphics = indicator.graphics;
g.clear();
g.beginFill(color);
//畫橢圓
g.drawEllipse(0, 0, width - _horizontalGap, height - _verticalGap);
g.endFill();
indicator.x = x;
indicator.y = y;
}
/**
* 重寫選中高亮
* @indicator:Sprite
* @x:Number
* @y:Number
* @width:Number
* @height:Number
* @color:uint
* @itemRenderer:IListItemRenderer
* return void
* **/
override protected function drawSelectionIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void {
//繪圖
var g:Graphics = indicator.graphics;
g.clear();
g.beginFill(color);
//畫橢圓
g.drawEllipse(0, 0, width - _horizontalGap, height - _verticalGap);
g.endFill();
indicator.x = x;
indicator.y = y;
}
//=============================
// set and get
//=============================
public function set verticalGap(value:Number):void {
_verticalGap = value;
}
public function get verticalGap():Number {
return _verticalGap;
}
public function set horizontalGap(value:Number):void {
_horizontalGap = value;
}
public function get horizontalGap():Number {
return _horizontalGap;
}
}
}
復制代碼 代碼如下:
/**
* Author Dante
* Email:rubbish86630@yahoo.com.cn
* CreatedTime:2009.04.13
* Description:
* 該組件實現(xiàn)選中和劃過theme樣式,并且添加間距
* **/
package myLib {
import flash.display.Graphics;
import flash.display.Sprite;
import mx.controls.TileList;
import mx.controls.listClasses.IListItemRenderer;
public class MyTileList extends TileList {
[Bindable]
private var _verticalGap:Number = 0;
[Bindable]
private var _horizontalGap:Number = 0;
public function MyTileList() {
super();
}
/**
* 重寫鼠標劃過高亮
* @indicator:Sprite
* @x:Number
* @y:Number
* @width:Number
* @height:Number
* @color:uint
* @itemRenderer:IListItemRenderer
* return void
* **/
override protected function drawHighlightIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void {
//繪圖
var g:Graphics = indicator.graphics;
g.clear();
g.beginFill(color);
//畫橢圓
g.drawEllipse(0, 0, width - _horizontalGap, height - _verticalGap);
g.endFill();
indicator.x = x;
indicator.y = y;
}
/**
* 重寫選中高亮
* @indicator:Sprite
* @x:Number
* @y:Number
* @width:Number
* @height:Number
* @color:uint
* @itemRenderer:IListItemRenderer
* return void
* **/
override protected function drawSelectionIndicator(indicator:Sprite, x:Number, y:Number, width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void {
//繪圖
var g:Graphics = indicator.graphics;
g.clear();
g.beginFill(color);
//畫橢圓
g.drawEllipse(0, 0, width - _horizontalGap, height - _verticalGap);
g.endFill();
indicator.x = x;
indicator.y = y;
}
//=============================
// set and get
//=============================
public function set verticalGap(value:Number):void {
_verticalGap = value;
}
public function get verticalGap():Number {
return _verticalGap;
}
public function set horizontalGap(value:Number):void {
_horizontalGap = value;
}
public function get horizontalGap():Number {
return _horizontalGap;
}
}
}
相關(guān)文章
基于WebService的數(shù)據(jù)訪問(上) Flex與.NET互操作(二)
Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>標簽來直接訪問遠程數(shù)據(jù),這用于與各種不同語言環(huán)境開發(fā)提供的遠程服務端數(shù)據(jù)源(如WebService)進行數(shù)據(jù)交互通信顯得更加容易.2009-06-06
Flex Gumbo中通過baseColor樣式 設置FxHScrollBar背景顏色
Gumbo中通過baseColor樣式 設置FxHScrollBar背景顏色的實現(xiàn)代碼。需要的朋友可以參考下。2009-08-08
Flex與.NET互操作(十一):FluorineFx.Net的及時通信應用(Remote Procedure Call
FluorineFx.NET提供了完善的RPC(Remote Procedure Call)功能,無論是通過Flash還是Flex開發(fā)的客戶端應用(.swf)都可以非常簡單方便的采用RPC的方式調(diào)用.NET的服務器端方法2009-06-06
flex SystemManger監(jiān)控用戶是否和程序打交道
flex中可以通過SystemManger監(jiān)控用戶是否和程序打交道2009-05-05
Flex 如何得到itemRenderer里面的內(nèi)容
itemRenderer里面的內(nèi)容 獲取技巧。2009-07-07
Flex 創(chuàng)建一個自定義風格的HRule或VRule
Flex中如何通過strokeWidth, strokeColor和shadowColor樣式,創(chuàng)建一個自定義風格的HRule或VRule2009-06-06

