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; var cols : Array = getStyle('fillColors'); var colors:Array = cols; var alphas:Array = [1, 1]; var ratios:Array = [0, 0xFF]; var matrix:Matrix = new Matrix(); matrix.createGradientBox(unscaledWidth, unscaledHeight, 90*Math.PI/180, 0, 0); with (graphics) { clear(); lineStyle(0, 0, 0); if (getStyle('rightCorner')) { radius = unscaledHeight; } beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix); moveTo(0, 1); lineTo(unscaledWidth - radius, 1); curveTo(unscaledWidth, 1, unscaledWidth, radius); lineTo(unscaledWidth, unscaledHeight); lineStyle(1, getStyle('borderColor'), 0); lineTo(0, unscaledHeight); // lineStyle(1, getStyle('borderColor'), 1); lineTo(0, 1); lineStyle(1, getStyle('borderColor'), 1); switch (name) { case 'selectedOverSkin': case 'selectedDownSkin': case 'selectedUpSkin': radius = unscaledHeight; beginFill(cols[0], 1); lineStyle(1, getStyle('borderColor'), 1); moveTo(0, 1); lineTo(unscaledWidth - radius, 1); curveTo(unscaledWidth, 1, unscaledWidth, radius); lineTo(unscaledWidth, unscaledHeight); lineStyle(1, getStyle('borderColor'), 0); lineTo(0, unscaledHeight); //lineStyle(1, getStyle('borderColor'), 1); lineTo(0, 1); endFill(); break; default : if (0 == getStyle('rightCorner')) { lineStyle(2, 0, 0.3); moveTo(unscaledWidth-2, 5); lineTo(unscaledWidth-2, unscaledHeight - 5); } break; } } } } }