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!