package skins { import flash.display.GradientType; import flash.geom.Matrix; import mx.skins.Border; import mx.utils.ColorUtil; public class TabBar extends Border { private var colBackground: uint = 0xFFFFFF; private var colAlt: uint = 0xFFFFFF; private var colBorder: uint = 0; private var borderThickness: uint = 1; private var borderAlpha: Number = 1; private var backgroundAlpha: Number = 1; private var borderTopThickness: Number = 1; override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { unscaledWidth -= 2; graphics.clear(); colBorder= getStyle('borderColor'); colBackground = getStyle('downFillColors')[0]; switch (name) { case 'selectedOverSkin': case 'selectedDownSkin': case 'selectedUpSkin': borderTopThickness = 0; break; case 'overSkin': case 'downSkin': default : borderTopThickness = 2; break; } colAlt = ColorUtil.adjustBrightness(colBackground, 90); graphics.lineStyle(borderThickness, colBorder, borderAlpha); var matrix: Matrix = new Matrix(); matrix.createGradientBox(unscaledWidth, unscaledHeight, Math.PI/2, 0, 0); drawRoundRect( 0, borderTopThickness, unscaledWidth, unscaledHeight-borderTopThickness, 0, [colAlt, colBackground], [1, 1], matrix, GradientType.LINEAR, [0, 255]); } } }