*/
private function poleSprite(event : MouseEvent) : void {
//首先取消文本框滚动侦听,因为文本滚动的时候会设置滑块的位置,而此时是通过滑块调整文本的位置,所以会产生冲突
scrollText.removeEventListener(Event.SCROLL, textScroll);
//监听舞台,这样可以保证拖动滑竿的时候,鼠标在舞台的任意位置松手,都会停止拖动
scrollBar_sprite.stage.addEventListener(MouseEvent.MOUSE_UP, poleUp);
//限定拖动范围
var dragRect : Rectangle = new Rectangle(pole_sprite.x, poleStartY, 0, totalPixels);
pole_sprite.startDrag(false, dragRect);
scrollBar_sprite.addEventListener(Event.ENTER_FRAME, poleDown);
}
private function poleDown(event : Event) : void {
//在滚动过程中及时获得滑块所处位置
var nowPosition : Number = Math.floor(pole_sprite.y);
//使文本随滚动条滚动,这里为什么要加1,可见scroll属性值应该是取正的,也就是说它会删除小数部分,而非采用四舍五入制?
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels 2;
//误差校正
var unitPixels : Number = totalPixels / (scrollText.maxScrollV - 1);
if((nowPosition - poleStartY) < unitPixels) {
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels;
}
}
private function poleUp(event : MouseEvent) : void {
pole_sprite.stopDrag();
scrollBar_sprite.removeEventListener(Event.ENTER_FRAME, poleDown);
scrollBar_sprite.stage.removeEventListener(MouseEvent.MOUSE_UP, poleUp);
scrollText.addEventListener(Event.SCROLL, textScroll);
}
/**
* 滑块背景点击
*/
private function bgDown(event : MouseEvent) : void {
var nowPosition : Number;
if((scrollBar_sprite.mouseY - up_btn.y) < (pole_sprite.height / 2)) {
nowPosition = Math.floor(up_btn.y up_btn.height);
}else if((down_btn.y - scrollBar_sprite.mouseY) < pole_sprite.height / 2) {
nowPosition = Math.floor(down_btn.y - pole_sprite.height);
}else {
nowPosition = scrollBar_sprite.mouseY - pole_sprite.height / 2;
}
pole_sprite.y = nowPosition;
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels 2;
var unitPixels : Number = totalPixels / (scrollText.maxScrollV - 1);
if((nowPosition - poleStartY) < unitPixels) {
scrollText.scrollV = (scrollText.maxScrollV - 1) * (nowPosition - poleStartY) / totalPixels 1;










