2010-07-14 24 views

回答

0

這是代碼。

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; 
      } 
     } 
    } 
0

如果你只是想改變顯示的項目的背景和文本顏色,在ListBase類定義了以下樣式:

  • rollOverColor
    • 渲染器時的背景顏色用戶翻轉它。
    • 默認值爲0xEEFEE6
  • textRollOverColor
    • 渲染器的文本的顏色,當在它的用戶卷。
    • 默認值是0x2B333C。

因此,像:

<mx:List rollOverColor="#FF0000" textRollOverColor="#FFFF00"/> 

會給你黃色文本在紅色的背景,當你在一個項目上移動鼠標(!)。

+0

謝謝Amarghosh,但那不是尋找的東西。我正在尋找一種方法來剝離翻轉指示器。 我找到了解決方案。 我不得不擴展列表組件並重寫drawSelectionIndicator和drawHighlightIndicator。 我會爲其他人發佈下面的代碼。 感謝您的回覆 – 2010-07-15 09:46:21