# AS2 scroll up/down button speed

**URL:** <https://forum.kirupa.com/t/as2-scroll-up-down-button-speed/230713>\
**Category:** flash\
**Created:** [June 28, 2007, 12:57pm UTC](https://forum.kirupa.com/t/as2-scroll-up-down-button-speed/230713 "2007-06-28T12:57:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bluecarnumber9](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@bluecarnumber9](https://forum.kirupa.com/u/bluecarnumber9)\
**Post date:** [June 28, 2007, 12:57pm UTC](https://forum.kirupa.com/t/as2-scroll-up-down-button-speed/230713/1 "2007-06-28T12:57:51Z")

</div>

The dragger in my scroll bar seems to work at a good pace but when I hold down the buttons the text seems to crawl at snails pace up and down. Is there anything I could add to the action script to speed up the rate at which the text scrolls when the buttons are held down? I think I found this script in the kirupa site somewhere. I tried adjusting the “speed” but it didn’t seem to change anything.

(using Flash MX 2004 with ActionScript 2.0)

:sen:

fscommand(“allowscale”, “false”);  
bar.useHandCursor = dragger.useHandCursor=false;  
space = 20;  
friction = 0.9;  
speed = 4;  
y = dragger.\_y;  
top = main.\_y;  
bottom = main.\_y+mask\_mc.\_height-main.\_height-space;  
dragger.onPress = function() {  
drag = true;  
this.startDrag(false, this.\_x, this.\_parent.y, this.\_x, this.\_parent.y+this.\_parent.bar.\_height-this.\_height);  
dragger.scrollEase();  
};  
dragger.onMouseUp = function() {  
this.stopDrag();  
drag = false;  
};  
bar.onPress = function() {  
drag = true;  
if (this.\_parent.\_ymouse\>this.\_y+this.\_height-this.\_parent.dragger.\_height) {  
this.\_parent.dragger.\_y = this.\_parent.\_ymouse;  
this.\_parent.dragger.\_y = this.\_y+this.\_height-this.\_parent.dragger.\_height;  
} else {  
this.\_parent.dragger.\_y = this.\_parent.\_ymouse;  
}  
dragger.scrollEase();  
};  
bar.onMouseUp = function() {  
drag = false;  
};  
moveDragger = function (d) {  
if ((dragger.\_y\>=y+bar.\_height-dragger.\_height && d == 1) || (dragger.\_y\<=y && d == -1)) {  
clearInterval(myInterval);  
} else {  
dragger.\_y += d;  
dragger.scrollEase();  
updateAfterEvent();  
}  
};  
up\_btn.onPress = function() {  
myInterval = setInterval(moveDragger, 18, -1);  
};  
down\_btn.onPress = function() {  
myInterval = setInterval(moveDragger, 18, 1);  
};  
up\_btn.onMouseUp = down\_btn.onMouseUp=function () {  
clearInterval(myInterval);  
};  
MovieClip.prototype.scrollEase = function() {  
this.onEnterFrame = function() {  
if (Math.abs(dy) == 0 && drag == false) {  
delete this.onEnterFrame;  
}  
r = (this.\_y-y)/(bar.\_height-this.\_height);  
dy = Math.round((((top-(top-bottom)\*r)-main.\_y)/speed)\*friction);  
main.\_y += dy;  
};  
};
