Horizontal News Ticker Issue

Hello all…

I’m trying to create a Horizontal News Ticker using AS3 and XML, but I am getting the following error when I publish and can’t for the life of me figure out where I’m going wrong… It’s the usual, the more you look at it, the more you don’t see…

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at ticker_fla::MainTimeline/ticker_fla::frame1()

My code is as follows:

var xmlNode:XMLNode = this.firstChild;
var caption:Array = [];
var [url:Array](http://www.kirupa.com/forum/Array) = [];
var total:Number = xmlNode.childNodes.length;
var i:Number;
var delay:Number = 5000;
var p:Number = 0;
var over:TextFormat = new TextFormat();
var out:TextFormat = new TextFormat();
var xmlData = new XML();
 xmlData.ignoreWhite = true;
 xmlData.load("../includes/test.xml");
 xmlData.onLoad = loadXML;
function loadXML() {
 for (i = 0; i < total; i++) {
  caption* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
  url* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
 }
 first_item();
}
function first_item() {
 display(p);
 p++;
}
function display(pos) {
 over.underline = true;
 out.underline = false;
 
 scroller_mc.scroller_txt.text = caption[pos];
 fadein();
 
 //Create button event listeners
 scroller_mc.addEventListener(MouseEvent.MOUSE_UP, buttonRelease);
 scroller_mc.addEventListener(MouseEvent.MOUSE_OVER, buttonOver);
 scroller_mc.addEventListener(MouseEvent.MOUSE_OUT, buttonOut);
 
 function buttonRelease(pos) {
  var [url:String](http://www.kirupa.com/forum/String) = url[pos];
  var request:URLRequest = new URLRequest(url);
  try {
   navigateToURL(request, '_self'); // second argument is target
  } catch (e:Error) {
   trace("Error occurred!");
  }
 }
 
 function buttonOver() {
  this.scroller_txt.setTextFormat(over);
 }
 function buttonOut() {
  this.scroller_txt.setTextFormat(out);
 }
 timer();
}
function fadein() {
 //Create onEnterFrame event listener
 addEventListener(Event.ENTER_FRAME, alphaIn);
 
 function alphaIn() {
  if (scroller_mc.scroller_txt._alpha < 100) {
   scroller_mc.scroller_txt._alpha += 5;
  }
 }
}
function timer() {
 var myInterval = setInterval(ticker, delay);
 function ticker() {
  clearInterval(myInterval);
  if (p == total) {
   p = 0;
  }
  fadeout();
 }
}
function fadeout() {
 //Create onEnterFrame event listener
 addEventListener(Event.ENTER_FRAME, alphaOut);
 
 function alphaOut() {
  if (scroller_mc.scroller_txt._alpha > 0) {
   scroller_mc.scroller_txt._alpha -= 5;
  } else {
   display(p);
   p++;
  }
 }
}

Cheers in advance!