package skins { import flash.display.GradientType; import flash.geom.Matrix; import mx.controls.scrollClasses.ScrollBar; import mx.skins.Border; import mx.utils.ColorUtil; public class VScrollTrack extends Border { private var colBackground: uint = 0xFFFFFF; private var colBackgroundAlt: uint = 0xFFFFFF; private var colBorder: uint = 0; private var borderThickness: uint = 1; private var borderAlpha: Number = 1; private var backgroundAlpha: Number = 1; private var colArrow: uint = 0xFFFFFF; private var isUp: Boolean = false; private var borderOutThickness: Number = 2; override public function get measuredWidth():Number { return ScrollBar.THICKNESS; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { graphics.clear(); colBorder= getStyle('borderColor'); colArrow = ColorUtil.adjustBrightness(colBorder, -50); colBackground = getStyle('fillColors')[0]; colBackgroundAlt = ColorUtil.adjustBrightness(colBackground, 90); var colBorderOut: uint = ColorUtil.adjustBrightness(colBackground, 0); var colBorderOutAlt: uint = ColorUtil.adjustBrightness(colBorderOut, 150); graphics.lineStyle(1, colBorder, 1); var matrix: Matrix = new Matrix(); matrix.createGradientBox(unscaledWidth, unscaledHeight, 0); drawRoundRect(0, 0, unscaledWidth, unscaledHeight, 0, [colBackgroundAlt, colBackground], [backgroundAlpha, backgroundAlpha], matrix, GradientType.LINEAR, [0, 255]); var cX: Number = unscaledWidth / 2; var cY: Number = unscaledHeight / 2; with (graphics) { lineStyle(1, colBackground, 1); moveTo(cX, 1); lineTo(cX, unscaledHeight-1); cX++; lineStyle(1, colBackgroundAlt, 1); moveTo(cX, 1); lineTo(cX, unscaledHeight-1); } } } }