0
有誰知道如何將自定義rolloveridickinskins添加到flex 3列表組件? 它沒有css中的rolloveridicatorskin。以編程方式skinning滾動flex列表組件的idicator滾動
有誰知道如何將自定義rolloveridickinskins添加到flex 3列表組件? 它沒有css中的rolloveridicatorskin。以編程方式skinning滾動flex列表組件的idicator滾動
這是代碼。
package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.filters.DropShadowFilter;
import mx.controls.List;
import mx.controls.listClasses.IListItemRenderer;
import mx.core.ClassFactory;
public class friendList extends List
{
private var dropShadow:DropShadowFilter = new DropShadowFilter(2,117,0x000000,0.4);
private var filtersArray:Array = new Array(dropShadow);
override protected function drawSelectionIndicator(indicator:Sprite, x:Number,
y:Number, width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer):void
{
var g:Graphics = Sprite(indicator).graphics;
g.clear();
g.beginFill(0x000000, 0.5);
g.lineStyle(2,0xffffff,0.5);
g.drawRoundRect(0, 0, width-2, height-2, 6);
g.endFill();
indicator.x = x;
indicator.y = y;
indicator.filters = filtersArray;
}
override protected function drawHighlightIndicator(
indicator:Sprite, x:Number, y:Number,
width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer):void
{
var g:Graphics = Sprite(indicator).graphics;
g.clear();
g.beginFill(0x163e76, 0.5);
g.lineStyle(2,0xffffff,0.5);
g.drawRoundRect(0, 0, width-2, height-2, 6);
g.endFill();
indicator.x = x;
indicator.y = y;
indicator.filters = filtersArray;
}
}
}
如果你只是想改變顯示的項目的背景和文本顏色,在ListBase類定義了以下樣式:
rollOverColor
0xEEFEE6
。textRollOverColor
因此,像:
<mx:List rollOverColor="#FF0000" textRollOverColor="#FFFF00"/>
會給你黃色文本在紅色的背景,當你在一個項目上移動鼠標(!)。
謝謝Amarghosh,但那不是尋找的東西。我正在尋找一種方法來剝離翻轉指示器。 我找到了解決方案。 我不得不擴展列表組件並重寫drawSelectionIndicator和drawHighlightIndicator。 我會爲其他人發佈下面的代碼。 感謝您的回覆 – 2010-07-15 09:46:21