Kirupa Scrollbar AS3.0

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…

  1. When you drag out of the scroller everything stops. I’m having a hard time figuring out how to handle this? Literally and figuratively.
  2. 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.

  1. 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();