Вы можете сделать это через скиннинг. Вся полоса прокрутки настраивается. Вам просто нужно установить стиль trackSkin, чтобы HScrollBar был программным скином. Тогда ваша кожа будет в основном двумя прямоугольниками. От 0 до parent.scrollPosition
. А остальные от parent.scrollPosition
до height
. Вот пример, который может работать. Я не проверял. Возможно, вам придется возиться с некоторыми цифрами.
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();
}
}
}