# Scrollbar with key buttons

**URL:** <https://forum.kirupa.com/t/scrollbar-with-key-buttons/274869>\
**Category:** Uncategorized\
**Created:** [November 6, 2008, 1:18am UTC](https://forum.kirupa.com/t/scrollbar-with-key-buttons/274869 "2008-11-06T01:18:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tspider](https://avatars.discourse-cdn.com/v4/letter/t/d2c977/32.png) [@tspider](https://forum.kirupa.com/u/tspider)\
**Post date:** [November 6, 2008, 1:18am UTC](https://forum.kirupa.com/t/scrollbar-with-key-buttons/274869/1 "2008-11-06T01:18:40Z")

</div>

Ok men…i think i put this code in a wrong forum…  
but here it is in the right forum… cause its actionscript.

Im trying to modify the custom scrollbar that is in the tutorial section, it works nice, but i need to scroll the contentMain with the up and down arrow keys also, i think it needs a listener event, but is a kind of tricky for me…  
then, if any one here have some suggestion, please help!! cause i’m fried :puzzle:  
with this

The complete code that is in the tutorial exactly is this…  
Best regards and thanks!!!  
RT

////

scrolling = function () {  
var scrollHeight:Number = scrollTrack.\_height;  
var contentHeight:Number = contentMain.\_height;  
var scrollFaceHeight:Number = scrollFace.\_height;  
var maskHeight:Number = maskedView.\_height;  
var initPosition:Number = scrollFace.\_y=scrollTrack.\_y;  
var initContentPos:Number = contentMain.\_y;  
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;  
var left:Number = scrollTrack.\_x;  
var top:Number = scrollTrack.\_y;  
var right:Number = scrollTrack.\_x;  
var bottom:Number = scrollTrack.\_height-scrollFaceHeight+scrollTrack.\_y;  
var dy:Number = 0;  
var speed:Number = 10;  
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-scrollFaceHeight);

scrollFace.onPress = function() {  
var currPos:Number = this.\_y;  
startDrag(this, false, left, top, right, bottom);  
this.onMouseMove = function() {  
dy = Math.abs(initPosition-this.\_y);  
contentMain.\_y = Math.round(dy\*-1\*moveVal+initContentPos);  
};  
};  
scrollFace.onMouseUp = function() {  
stopDrag();  
delete this.onMouseMove;  
};  
btnUp.onPress = function() {  
this.onEnterFrame = function() {  
if (contentMain.\_y+speed\<maskedView.\_y) {  
if (scrollFace.\_y\<=top) {  
scrollFace.\_y = top;  
} else {  
scrollFace.\_y -= speed/moveVal;  
}  
contentMain.\_y += speed;  
} else {  
scrollFace.\_y = top;  
contentMain.\_y = maskedView.\_y;  
delete this.onEnterFrame;  
}  
};  
};  
btnUp.onDragOut = function() {  
delete this.onEnterFrame;  
};  
btnUp.onRelease = function() {  
delete this.onEnterFrame;  
};  
btnDown.onPress = function() {  
this.onEnterFrame = function() {  
if (contentMain.\_y-speed\>finalContentPos) {  
if (scrollFace.\_y\>=bottom) {  
scrollFace.\_y = bottom;  
} else {  
scrollFace.\_y += speed/moveVal;  
}  
contentMain.\_y -= speed;  
} else {  
scrollFace.\_y = bottom;  
contentMain.\_y = finalContentPos;  
delete this.onEnterFrame;  
}  
};  
};  
btnDown.onRelease = function() {  
delete this.onEnterFrame;  
};  
btnDown.onDragOut = function() {  
delete this.onEnterFrame;  
};

if (contentHeight\<maskHeight) {  
scrollFace.\_visible = false;  
btnUp.enabled = false;  
btnDown.enabled = false;  
} else {  
scrollFace.\_visible = true;  
btnUp.enabled = true;  
btnDown.enabled = true;  
}  
};  
scrolling();
