Hello,
I have converted a version of the world famous Kirupa scrollbar from AS2.0 to AS3.0. It mysteriously works. However I have a funny feeling that this is really messed up from an AS 3.0 point of view. So I have a few questions…
- When you drag out of the scroller everything stops. I’m having a hard time figuring out how to handle this? Literally and figuratively.
- It’s kicking out this error:
ReferenceError: Error #1065: Variable event is not defined.
at MethodInfo-14()
at scroller_fla::MainTimeline/scroller_fla::frame1()
I have no clue what this error means or how to stop it.
- Calling the variable “right” into the RECTANGLE ( object?) makes the dragger go insane. What am I missing?
Any help would be greatly appreciated.
Here is my glorious code:
scrolling = function (){
var moveSpeed:Number = 1;
var scrollHeight:Number = scrollbg.height;
// how much of the movie can be scrolled
var scrollable:Number = contentMain.height-maskedView.height;
var initContentPos:Number = contentMain.y;
// the drag positions that are possible for the dragger
var left:Number = scrollbg.x;
var top:Number = scrollbg.y;
var right:Number = scrollbg.x;
var bottom:Number = scrollbg.height-dragger.height+scrollbg.y;
var rect1:Rectangle = new Rectangle(left,top,0,bottom);
//var myBounds=(left,top,right,bottom);
// make sure the content scrollable, if it isn't hide everything and return
if (scrollable < 0)
{
dragger.visible = false;
btnUp.enabled = false;
btnUp.alpha = 50;
btnDown.alpha = 50;
scrollbg.alpha = 50;
btnDown.enabled = false;
return;
}
// Updates the contents position
function updateContentPos(){
var percent_scrolled:Number = (dragger.y-btnUp.height)/(scrollHeight-dragger.height);
contentMain.y = Math.round(initContentPos-(percent_scrolled*scrollable));
}
////////////////LISTENERS///////////////////////////////
dragger.addEventListener(MouseEvent.MOUSE_DOWN, pressDragger);
dragger.addEventListener(MouseEvent.MOUSE_UP, upDragger);
dragger.addEventListener(MouseEvent.MOUSE_MOVE, moveDragger);
dragger.addEventListener(MouseEvent.MOUSE_OUT, outDragger);
btnDown.addEventListener(MouseEvent.MOUSE_DOWN, pressbtnDown);
btnDown.addEventListener(MouseEvent.MOUSE_OUT, dragOutbtnDown);
btnDown.addEventListener(MouseEvent.MOUSE_UP, releasebtnDown);
btnUp.addEventListener(MouseEvent.MOUSE_DOWN, pressbtnUp);
btnUp.addEventListener(MouseEvent.MOUSE_OUT, dragOutbtnUp);
btnUp.addEventListener(MouseEvent.MOUSE_UP, releasebtnUp);
btnUp.addEventListener(event.ENTER_FRAME, pressbtnUp);
//////////BUTTONS BEGIN HERE//////////////////////////////
function pressDragger(event:MouseEvent):void {
dragger.startDrag(false,rect1);// NEED TO CONSTRAIN TO scrollbg HEIGHT
updateContentPos();
}
function moveDragger(event:MouseEvent):void {
updateContentPos();
}
function upDragger(event:MouseEvent):void {
updateContentPos();
stopDrag();
};
function outDragger(event:MouseEvent):void {
updateContentPos();
stopDrag();
};
///////////////////////////////////////////////////////////
function pressbtnUp(event:MouseEvent):void {
addEventListener(Event.ENTER_FRAME,moveDraggerUp);
};
function moveDraggerUp(event:Event):void{
dragger.y = Math.max(top, dragger.y-moveSpeed);
updateContentPos();
};
function dragOutbtnUp(event:MouseEvent):void {
removeEventListener(Event.ENTER_FRAME,moveDraggerUp);
updateContentPos();
};
function releasebtnUp(event:MouseEvent):void {
removeEventListener(Event.ENTER_FRAME,moveDraggerUp);
updateContentPos();
};
///////////////////////////////////////////////////////////
function pressbtnDown(event:MouseEvent):void {
addEventListener(Event.ENTER_FRAME,moveDraggerDown);
//trace("button down pressed");
};
function moveDraggerDown(event:Event):void{
dragger.y = Math.min(bottom, dragger.y+moveSpeed);
updateContentPos();
};
function dragOutbtnDown(event:MouseEvent):void {
removeEventListener(Event.ENTER_FRAME,moveDraggerDown);
//trace("MOUSE OUT");
};
function releasebtnDown(event:MouseEvent):void {
removeEventListener(Event.ENTER_FRAME,moveDraggerDown);
//trace("button down RELEASED");
};
/////////////////////BUTTONS END HERE//////////////////////////////////
updateContentPos();
}
scrolling();