I’m having problems with an XML onload function. The trace statement in my flash movie returns undefined and the one in my class file also returns undefined.
if I use trace(xnAnimal) inside the dataprovider function in the class file it returns the entire xml file.
I have used a similar code in another movie and it worked as it should but for some reason this isn’t working. Could someone help me out with this one.
here is the code I have in my flash movie.
var xmlAnimal:XML;
var animalStock:AnimalXML;
initializeAnimalXML("animalstock.xml");
function initializeAnimalXML(sFile:String):Void
{
xmlAnimal = new XML();
xmlAnimal.ignoreWhite = true;
xmlAnimal.onLoad = function(bSuccess):Void
{
//var xnTreasureType:XMLNode;
animalStock = new AnimalXML();
animalStock.dataProvider=this.firstChild;
trace(animalStock.Name); returns null
}
xmlAnimal.load(sFile);
}
My class code
class AnimalXML
{
private var _sName:String;
private var _nPS:Number;
private var _nDX:Number;
private var _nCN:Number;
private var _sSpeed:String;
private var _nACBonus:Number;
private var _sBonusMuts:String;
private var _sDescription:String;
public function get Name():String{ return _sName; }
public function get PS():Number{ return _nPS; }
public function get DX():Number{ return _nDX; }
public function get CN():Number{ return _nCN; }
public function get Speed():String{ return _sSpeed; }
public function get ACBonus():Number{ return _nACBonus; }
public function get BonusMuts():String{ return _sBonusMuts; }
public function get Description():String{ return _sDescription; }
public function set dataProvider(xnAnimal:XMLNode):Void{
_sName = xnAnimal.attributes.name;
trace("XML Node: "+xnAnimal.attributes.name);
_nPS = xnAnimal.attributes.ps;
_nDX = xnAnimal.attributes.dx;
_nCN = xnAnimal.attributes.cn;
_sSpeed = xnAnimal.attributes.speed;
_nACBonus = xnAnimal.attributes.acbonus;
_sBonusMuts = xnAnimal.attributes.mutationbonus;
_sDescription = xnAnimal.firstChild.nodeValue;
}
function AnimalXML(sName:String,nPS:Number,nDX:Number,nCN:Number,sSpeed:String,nACBonus:Number,sBonusMuts:String,sDescription:String){
_sName = sName;
_nPS = nPS;
_nDX = nDX;
_nCN = nCN;
_sSpeed = sSpeed;
_nACBonus = nACBonus;
_sBonusMuts = sBonusMuts;
_sDescription = sDescription;
}
public function toString():String{
var sOutput:String = _sName +newline+_nPS+newline+_nDX+newline+_nCN+newline+_sSpeed+newline+_nACBonus+newline+_sBonusMuts+newline+_sDescription+newline;
return sOutput
}
}
xml file structure. I’m only showing one Animal Node but the files will actually have about 30 to 40 animal nodes.
<animalstock>
<Animal>
<name>Alligator</name>
<ps>15</ps>
<dx>3</dx>
<cn>12</cn>
<speed>base 15,bipedal 10,Water 8</speed>
<acbonus>13</acbonus>
<mutations><mutationbonus/>
<description><description/>
</Animal>
<animalstock