package skins { import flash.display.GradientType; import flash.geom.Matrix; import mx.skins.Border; import mx.utils.ColorUtil; public class TabBar extends Border { override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { var radius : uint = 0; unscaledHeight -= 3; var backgroundColor : uint = getStyle('downFillColors')[1]; with (graphics) { clear(); lineStyle(0, 0, 0); if (getStyle('rightCorner')) { radius = unscaledHeight; } var alphas:Array = [0.4, 0.4, 0.2, 0.2]; var cols:Array = [0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF]; var ratios: Array = [0, 100, 130, 255]; var matrix:Matrix = new Matrix(); matrix.createGradientBox(unscaledWidth, unscaledHeight, 90*Math.PI/180, 0, 0); lineStyle(0, 0, 0); beginFill(backgroundColor); moveTo(0, 1); lineTo(unscaledWidth - radius, 1); curveTo(unscaledWidth, 1, unscaledWidth, radius); lineTo(unscaledWidth, unscaledHeight); lineStyle(1, getStyle('borderColor'), 0); lineTo(0, unscaledHeight); lineTo(0, 1); endFill(); //////// lineStyle(1, getStyle('borderColor'), 0.7); beginGradientFill(GradientType.LINEAR, cols, alphas, ratios, matrix); moveTo(0, 0); lineTo(unscaledWidth - radius, 0); curveTo(unscaledWidth, 1, unscaledWidth, radius); lineTo(unscaledWidth, unscaledHeight); lineStyle(1, getStyle('borderColor'), 0); lineTo(0, unscaledHeight); lineTo(0, 0); endFill(); /////// lineStyle(1, getStyle('borderColor'), 1); switch (name) { case 'selectedOverSkin': case 'selectedDownSkin': case 'selectedUpSkin': radius = unscaledHeight; beginFill(ColorUtil.adjustBrightness(backgroundColor, 60), 1); lineStyle(1, getStyle('borderColor'), 1); moveTo(0, 0); lineTo(unscaledWidth - radius, 0); curveTo(unscaledWidth, 0, unscaledWidth, radius); lineTo(unscaledWidth, unscaledHeight); lineStyle(1, getStyle('borderColor'), 0); lineTo(0, unscaledHeight); lineTo(0, 0); endFill(); break; default : if (0 == getStyle('rightCorner')) { lineStyle(2, 0, 0.3); moveTo(unscaledWidth-2, 5); lineTo(unscaledWidth-2, unscaledHeight - 5); } break; } } } } }