0


0

フレックスリストコンポーネントのロールオーバーイディケーターをプログラムでスキニングする

誰もがカスタムのrolloveridicatorskinsをflex 3リストコンポーネントに追加する方法を知っていますか? CSSにはrolloveridicatorskinがありません。

2 Answer


0


表示されるアイテムの背景色とテキスト色を変更するだけの場合、http://livedocs.adobe.com/flex/3/langref/mx/controls/listClasses/ListBase.html#styleSummary [ListBase]クラスは、次のスタイル:

  • rollOverColor

  • ユーザーがロールオーバーしたときのレンダラーの背景の色 it.

  • デフォルト値は `0xEEFEE6`です。

  • textRollOverColor

  • ユーザーがロールオーバーしたときのレンダラーのテキストの色。

  • デフォルト値は0x2B333Cです。

だから、のようなもの:


アイテムの上にマウスを移動すると、赤い背景(!)の上に黄色のテキストが表示されます。


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