package skins { import flash.display.GradientType; import flash.geom.Matrix; import mx.skins.Border; import mx.utils.ColorUtil; public class VScroll extends Border { override public function get measuredWidth():Number { return 15; } override public function get measuredHeight():Number { return 11; } private var borderColor: uint; private var backgroundColor: uint; override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); graphics.clear(); unscaledWidth -= 1; borderColor = getStyle('borderColor'); switch (name) { case "thumbDownSkin": backgroundColor = ColorUtil.adjustBrightness(getStyle('fillColors')[0], 60); break; default: backgroundColor = getStyle('fillColors')[0]; break; } graphics.beginFill(backgroundColor); graphics.drawRoundRect( 0, 0, unscaledWidth, unscaledHeight, 3); graphics.endFill() graphics.lineStyle(1, borderColor, 1); var matrix: Matrix = new Matrix(); matrix.createGradientBox(unscaledWidth, unscaledHeight, 0, 0, 0); drawRoundRect(0, 0, unscaledWidth, unscaledHeight, 3, [0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF], [0.4, 0.4, 0.2, 0.2], matrix, GradientType.LINEAR, [0, 120, 150, 255]); var size: Number = Math.min(unscaledHeight*0.25, 6); var cols: Array = [0xFFFFFF, backgroundColor]; with (graphics) { for (var i: int = 0; i< size; i++) { lineStyle(1, cols[i%2], 0.7); moveTo(3, unscaledHeight/2-size/2+i); lineTo(unscaledWidth-2, unscaledHeight/2-size/2+i); } } } } }