As a way of showing my gratitude for Kipura’s ‘Simple custom scrollbar’, I thought I would upload my amended version ‘Easing scrollbar’.
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 = scrollFace._x;
var top:Number = scrollTrack._y;
var right:Number = scrollFace._x;
var bottom:Number = scrollTrack._height - scrollFaceHeight + scrollTrack._y;
var dy:Number = 0;
var speed:Number = 10;
var moveVal:Number = (contentHeight - (maskHeight / 1.3)) / (maskHeight - (scrollFaceHeight / 2));
contentMain.setMask(maskedView);
scrollFace.onPress = function() {
var currPos:Number = this._y;
startDrag(this, false, left, top, right, bottom);
this.onEnterFrame = function() {
dy = -((scrollFace._y - scrollFaceHeight) * moveVal);
contentMain._y -= (contentMain._y - dy)/5;
};
};
scrollFace.onMouseUp = function() {
stopDrag();
//delete this.onEnterFrame;
};
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();
Hope you find this useful
Joe