2009-10-12 37 views
0

的每一面我想,這樣的軌道皮膚是在拇指的兩側不同,以創建一個使用HSlider的HSlider使用。所以,例如,拇指左側的軌道是綠色的,而另一側是紅色的。如何獲得與皮膚的拇指

這可能還是會採取一個自定義組件?

回答

1

您可以通過剝皮做到這一點。整個滾動條是可定製的。您只需要將HScrollBar的trackSkin樣式設置爲編程皮膚即可。那麼你的皮膚將基本上是兩個矩形。 0到parent.scrollPosition。另一個從parent.scrollPositionheight。這是一個可能有效的例子。我沒有測試過。你可能需要擺弄一些數字。

public class ScrollBarSkin extends Border 
    { 
    //maybe needed as a hack for the flex internals. Values may need to be changed for specific cases 
    override public function get measuredWidth():Number {return 16; } 
    override public function get measuredHeight():Number {return 10;} 

    override protected function updateDisplayList(w:Number, h:Number):void { 
     super.updateDisplayList(w,h); 

     if(this.parent) { 
     var g:Graphics = this.graphics; 
     g.clear(); 

     //top 
     g.beginFill(0xFF0000); 
     g.drawRoundRect(1,1, w, parent.scrollPosition); 
     g.endFill(); 

     //bottom 
     g.beginFill(0x00FF00); 
     g.drawRoundRect(0, parent.scrollPosition, w, h); 
     g.endFill(); 

     } 
    }  
    }