스크롤바 (예) scrollBar
private function scrollControl() {
trace(" news resized");
if (paperBox.height > scrollBg.height) {
scrollBg.visible = true;
scrollBg.alpha=1.0;
scrollBar.visible=true;
scrollBar.alpha=1.0;
scrollBar.buttonMode=true;
scrollBar.useHandCursor=true;
scrollBar.scaleY = scrollBg.height / paperBox.height;
scrollBar.addEventListener(MouseEvent.MOUSE_DOWN,barDrag);
this.addEventListener(MouseEvent.MOUSE_UP,barDragStop);
this.addEventListener(MouseEvent.MOUSE_WHEEL,wheelScroll);
} else {
scrollBg.alpha=0;
scrollBar.visible=false;
}
}
private function barDrag(e:MouseEvent):void {
var rect:Rectangle=new Rectangle(scrollBg.x,scrollBg.y,0,scrollBg.height - scrollBar.height);
scrollBar.startDrag(false,rect);
scrollBar.addEventListener(Event.ENTER_FRAME,newsPaperScroll);
}
private function barDragStop(e:MouseEvent):void {
scrollBar.stopDrag();
scrollBar.removeEventListener(Event.ENTER_FRAME,newsPaperScroll);
}
private function newsPaperScroll(e:Event):void {
paperBox.y = ((scrollBar.y-10)/(scrollBg.height - scrollBar.height))*(paperBox.height-scrollBg.height)*(-1)+10;
//paperBox.y = - scrollBar.y + 20;
}
private function wheelScroll(e:MouseEvent):void{
if(e.delta>0){
if(scrollBar.y - 10 >0){
scrollBar.y = scrollBar.y - 10;
} else {
scrollBar.y = scrollBg.y;
}
paperBox.y = ((scrollBar.y-10)/(scrollBg.height - scrollBar.height))*(paperBox.height-scrollBg.height)*(-1)+10;
} else if (e.delta<0){
if(scrollBar.y + 10 < scrollBg.y + scrollBg.height -scrollBar.height){
scrollBar.y = scrollBar.y + 10;
} else {
scrollBar.y = scrollBg.y + scrollBg.height -scrollBar.height;
}
paperBox.y = ((scrollBar.y-10)/(scrollBg.height - scrollBar.height))*(paperBox.height-scrollBg.height)*(-1)+10;
}
}

