Dynamic Content MovieClip Scroller

So I just found this code from somewhere here on the forums, it’s a AS3 version of the tutorial found here on this website.

//based on the Kirupa's great original code and new "migratingFromAs2" altern paths by Senocular // traduced to as3 by sightNoise
var scrollHeight:Number = scrollTrk.height;
var contentHeight:Number = contentMain.height;
var scrollFaceHeight:Number = scrollFace.height;
var maskHeight:Number = maskedView.height;
var initPosition:Number = scrollFace.y=scrollTrk.y;
var initContentPos:Number = contentMain.y;
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;
var left:Number = scrollTrk.x;
var top:Number = scrollTrk.y;
var right:Number = 0;
var bottom:Number = scrollTrk.height-scrollFaceHeight;
var bottom2:Number = scrollTrk.height-scrollFaceHeight+scrollTrk.y;
var dy:Number = 0;
var speed:Number = 20;
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-scrollFaceHeight);
var currPos:Number;
var rect1:Rectangle = new Rectangle(left,top,right,bottom)
//+++++++++++++++++++++++++++++++++++++LISTENERS*****************************************//
scrollFace.addEventListener(MouseEvent.MOUSE_DOWN, scrollMouseDown)
scrollFace.addEventListener(MouseEvent.MOUSE_UP, scrollMouseUp)
btnUp.addEventListener(MouseEvent.MOUSE_DOWN, btnUpPress)
btnUp.addEventListener(MouseEvent.MOUSE_UP, btnUpRelease)
btnUp.addEventListener(MouseEvent.MOUSE_OUT, btnUpOut)
btnDown.addEventListener(MouseEvent.MOUSE_DOWN, btnDownPress)
btnDown.addEventListener(MouseEvent.MOUSE_UP, btnDownRelease)
btnDown.addEventListener(MouseEvent.MOUSE_OUT, btnDownOut)
addEventListener(MouseEvent.MOUSE_WHEEL, wheelScroll)
//+++++++++++++++++++++++++++++++++++++LISTENERS*****************************************//
function scrollMouseDown(event:MouseEvent) {
	currPos = this.scrollFace.y;
	scrollFace.startDrag(false, rect1)
	scrollFace.addEventListener(Event.ENTER_FRAME, scrollMove)
	stage.addEventListener(MouseEvent.MOUSE_UP, releaseOut)
};
function scrollMove(event:Event) {
	dy = Math.abs(initPosition-scrollFace.y);
	contentMain.y = Math.round(dy*-1*moveVal+initContentPos);
};

function scrollMouseUp(event:MouseEvent) {
	scrollFace.stopDrag();
	scrollFace.removeEventListener(Event.ENTER_FRAME, scrollMove)
};

function releaseOut(event:MouseEvent) {
	if (event.target == scrollFace){
		//if onRelease use MouseEvent.MOUSE_UP instead
		//check Senocular thread answer
		//http://www.kirupa.com/forum/showthread.php?p=1948182#post1948182
    }else{
        //mouse is up outside the Clip(onReleaseOutside) 
		//Thanks to Senocular for figuring out this altern path to releaseOutside
		scrollFace.stopDrag();
		scrollFace.removeEventListener(Event.ENTER_FRAME, scrollMove)
    }
    stage.removeEventListener(MouseEvent.MOUSE_UP, releaseOut);
};


function btnUpPress(event:MouseEvent) {
	btnUp.addEventListener(Event.ENTER_FRAME, btnUpEnterFrame)
};


function btnUpEnterFrame(event:Event) {
	if (contentMain.y>=initContentPos ||scrollFace.y<=top){
		scrollFace.y = top;
	}else{
		scrollFace.y -= speed/moveVal;
		contentMain.y += speed;
	}
};

function btnUpRelease(event:MouseEvent) {
	btnUp.removeEventListener(Event.ENTER_FRAME, btnUpEnterFrame)
};
function btnUpOut(event:MouseEvent) {
	btnUp.removeEventListener(Event.ENTER_FRAME, btnUpEnterFrame)
};


function btnDownPress(event:MouseEvent) {
	btnDown.addEventListener(Event.ENTER_FRAME, btnDownEnterFrame)
}
function btnDownEnterFrame(event:Event) {
	if (contentMain.y<=finalContentPos ||scrollFace.y>=bottom){
		scrollFace.y = bottom2;
	}else{
		scrollFace.y += speed/moveVal;
		contentMain.y -= speed;
	}
};

function btnDownRelease(event:MouseEvent) {
	btnDown.removeEventListener(Event.ENTER_FRAME, btnDownEnterFrame)
};

function btnDownOut(event:MouseEvent) {
	btnDown.removeEventListener(Event.ENTER_FRAME, btnDownEnterFrame)
};


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


 
function wheelScroll(event:MouseEvent):void{
 var sp= speed*2;
if(event.delta > 0){
  if (contentMain.y>=initContentPos ||scrollFace.y<=top) {
   scrollFace.y = top;
  }
  else {
   scrollFace.y -= sp/moveVal;
   contentMain.y += sp;
  }
}
else {
  if (contentMain.y<=finalContentPos ||scrollFace.y>=bottom) {
   scrollFace.y = bottom2;
  }
  else{
   scrollFace.y += sp/moveVal;
   contentMain.y -= sp;
  }
}}

What i’m looking for is a way to integrate this code or a similar type to work with dynamic content. Such as XML data loaded into a dynamic text field.

Any suggestions?

-mgh