I have an outside GameData Class
I call the constructor from a fla file but i cant get a hold of the GamaDataArray via the getGameData() Function it keeps saying that the GameDataArray is Empty, but if i trace within the class it works, when i go to the fla file it says its empty. Can somebody please tell me what i am missing, i know its something super small
Here it is
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.MovieClip;
public class GameData extends MovieClip
{
private var xml:XML;
private var rootnodeTag:String;
private var awayteamTag:String;
private var hometeamTag:String;
private var gamedateTag:String;
private var rootnode:String;
private var awayteam:String;
private var hometeam:String;
private var gameday:String;
private var gamemonth:String;
private var gameyear:String;
private var myRequest:URLRequest;
private var myLoader:URLLoader;
private var dateArray:Array = new Array();
private var gdo:Object;
private var GameDataArray:Array = new Array();
public function GameData(xmlURL:String, gameDate:String, homeTeam:String, awayTeam:String, rootNode:String)
{
this.rootnodeTag = rootNode;
this.gamedateTag = gameDate;
this.hometeamTag = homeTeam;
this.awayteamTag = awayTeam;
loadXML(xmlURL);
}
/*Private Data Processing Functions*/
private function loadXML(s:String)
{
myRequest = new URLRequest(s);
myLoader = new URLLoader(myRequest);
myLoader.addEventListener(Event.COMPLETE, xmlLoaded);
}
private function xmlLoaded(evt:Event)
{
xml = new XML(evt.target.data);
for each(var item:XML in xml[rootnodeTag])
{
gdo = new Object();
setHomeTeam(item[hometeamTag].toString());
setAwayTeam(item[awayteamTag].toString());
gameDateArray(item[gamedateTag].toString());
gdo = {homeTeam:getHomeTeam(), awayTeam:getAwayTeam()};
GameDataArray.push(gdo);
}
}
public function getGameData():Array
{
return GameDataArray;
}
private function gameDateArray(s:String)
{
dateArray = s.split('/');
setGameMonth(dateArray[0]);
setGameDay(dateArray[1]);
setGameYear(dateArray[2]);
}
/*Private Setter Functions*/
private function setRootNode(s:String):void
{
this.rootnode = s;
}
private function setHomeTeam(s:String):void
{
this.hometeam = s;
}
private function setAwayTeam(s:String):void
{
this.awayteam = s;
}
private function setGameDay(s:String):void
{
this.gameday = s;
}
private function setGameMonth(s:String):void
{
this.gamemonth = s;
}
private function setGameYear(s:String):void
{
this.gameyear = s;
}
/*Public Getter Functions*/
public function getRootNode():String
{
return rootnode;
}
public function getHomeTeam():String
{
return hometeam;
}
public function getAwayTeam():String
{
return awayteam
}
public function getGameDay():String
{
return gameday;
}
public function getGameMonth():String
{
return gamemonth;
}
public function getGameYear():String
{
return gameyear;
}
}
}
Here is how i call the constructor from within the fla file
var g:GameData = new GameData("games.xml", "gamedate", "homeTeam", "awayTeam", "tunein");
trace(g.getGameData());
Also here is my XML Structure
<data>
<tunein>
<gamedate>2/4/12</gamedate>
<awayTeamrank>25</awayTeamrank>
<awayTeam>Marimont</awayTeam>
<homeTeamrank>12</homeTeamrank>
<homeTeam>Knowles</homeTeam>
<time>9</time>
</tunein>
<tunein>
<gamedate>2/6/12</gamedate>
<awayTeamrank>3</awayTeamrank>
<awayTeam>Bridge</awayTeam>
<homeTeamrank>2</homeTeamrank>
<homeTeam>Piscataway</homeTeam>
<time>9</time>
</tunein>
</data>