Я делал это в прошлом, используя программные скины. Вам нужно создать свои собственные версии ProgressBarSkin и ProgressBarMaskSkin и опционально ProgressBarTrackSkin. В вашем ProgressBarSkin вы можете переопределить метод updateDisplayList следующим образом:
override protected function updateDisplayList(w:Number, h:Number):void {
super.updateDisplayList(w, h);
graphics.clear();
var fullWidth:int = w;
if (parent != null && (parent as UIComponent).mask != null)
fullWidth = (parent as UIComponent).mask.width;
var matrix:Matrix = new Matrix();
matrix.createGradientBox(fullWidth, h);
var colors:Array = [0xd00000, 0xf0d000, 0x00ff00];
this.graphics.lineStyle();
this.graphics.beginGradientFill(GradientType.LINEAR, colors, [1,1,1], [0,128,255], matrix);
this.graphics.drawRoundRect(2, 2, w - 4, h - 4, h - 4);
}
И в вашем ProgressBarMaskSkin сделайте это:
override protected function updateDisplayList(w:Number, h:Number):void {
super.updateDisplayList(w, h);
graphics.clear();
this.drawRoundRect(2, 2, w - 4, h - 4, (h - 4) / 2, 0xffffff, 1);
}
Затем вы присваиваете свои классы скинов своей шкале прогресса, и все готово. Надеюсь, это поможет.