package { import flash.display.Sprite; import com.avila.uielements.ScrollBar; import flash.text.TextField; import com.scrollbar.events.ScrollbarEvent; import flash.net.URLLoader; import flash.events.Event; import mx.core.TextFieldAsset; import flash.text.TextFieldAutoSize; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.net.URLRequest; import flash.display.DisplayObject; public class ScrollbarContentDemo extends Sprite { private var scrollbar:ScrollBar; private var content:Sprite; private var content_mask:DisplayObject; public function ScrollbarContentDemo() { stage.align = StageAlign.LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; createElements(); } private function createElements():void { scrollbar = new ScrollBar(); addChild( scrollbar ); scrollbar.addEventListener( ScrollbarEvent.SCROLL, onScrollbarScroll ); scrollbar.x = 300; content = createContent(); addChild( content ); content_mask = createMask(); content.mask = content_mask; } private function onScrollbarScroll( event:ScrollbarEvent ):void { var scrollable:Number = content.height - content_mask.height; content.y = content_mask.y - ( event.percent * scrollable ); } private function createMask():DisplayObject { var the_mask:Sprite = new Sprite(); the_mask.graphics.beginFill( 0x0 ); the_mask.graphics.drawRect( 0, 0, 300, 100 ); the_mask.graphics.endFill(); return the_mask; } private function createContent():Sprite { var content:Sprite = new Sprite(); content.graphics.beginFill( 0xFF0000 ); content.graphics.drawRect( 0, 0, 300, 100 ); content.graphics.beginFill( 0x00FF00 ); content.graphics.drawRect( 0, 100, 300, 100 ); content.graphics.beginFill( 0x0000FF ); content.graphics.drawRect( 0, 200, 300, 100 ); return content; } } }