Hi, I’ve got a Document Class, initXML class and a xmlParser class. The Document Class sends the xml file to the initXML class that then creates a new urlloader w/an event listener on it that calls the parser.
The Parser returns the data object back to initXML but I can’t figure out how to return the data back to the Document class.
Any help would be much appriciated!
Document Class:
package com.DePuy {
import com.gs.TweenMax;
import com.base10Creations.common.xml.initXML;
import flash.text.*;
import flash.display.DisplayObjectContainer;
import flash.display.MovieClip;
import flash.events.Event;
public class main extends MovieClip {
public function main() {
setDefaults();
}
public function setDefaults():void {
var test:Object = new Object;
trace("setting defaults");
var lowerLeftCircle:mc_circleLowerLeft = new mc_circleLowerLeft();
lowerLeftCircle.x = 46;
lowerLeftCircle.y = 251;
lowerLeftCircle.visible = false;
lowerLeftCircle.alpha = .5;
addChild(lowerLeftCircle);
trace(mc_slider);
//Load XML
var xmlObject:Object = initXML.initTheXML("../xml/DePuy.xml");
trace("XML Object: "+xmlObject.activityArray);
}
public function loadProject() {
trace("loading project");
}
}
}
initXML class
package com.base10Creations.common.xml {
import com.DePuy.xmlParser;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.Event;
public class initXML {
public static function initTheXML(theXML:String):URLLoader {
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest(theXML));
function LoadXML(e:Event):Object {
var xmlData:XML = new XML(e.target.data);
var xmlParsed:Object = xmlParser.runParser(xmlData);
return (xmlParsed);
}
trace("xmlLoader: "+xmlLoader.activityArray[0].aType);
return (xmlLoader);
}
}
}
xmlParser class
package com.DePuy {
public class xmlParser {
public function xmlParser() {
//runParser(xmlDataObj);
}
public static function runParser(xmlDataObj:XML):Object {
trace("XML Output");
trace("------------------------");
var activitiesList:XMLList = xmlDataObj.activities.activity;
var activitiesObj:Object = new Object();
activitiesObj.activityArray = new Array();
for (var i:int = 0; i < activitiesList.length(); i++) {
var activityObj:Object = new Object();
activityObj.aType = activitiesList*.attribute("type");
activityObj.yearsArray = new Array();
var yearsList:XMLList = activitiesList*.years.children();
for (var j:int = 0; j < yearsList.length(); j++) {
var yearsObj:Object = new Object();
yearsObj.yNum = yearsList[j].attribute("yearNum");
yearsObj.imgArray = new Array();
yearsObj.itemArray = new Array();
var imgList:XMLList = yearsList[j].images.children();
for (var k:int = 0; k < imgList.length(); k++) {
var imgObj:Object = new Object();
imgObj.iPath = imgList[k].text();
}
yearsObj.imgArray.push(imgObj);
var itemList:XMLList = yearsList[j].items.children();
for (var l:int = 0; l < itemList.length(); l++) {
var itemObj:Object = new Object();
itemObj.iText = itemList[l].text();
yearsObj.itemArray.push(itemObj);
}
activityObj.yearsArray.push(yearsObj);
}
activitiesObj.activityArray.push(activityObj);
}
trace("activityArray: "+activitiesObj.activityArray[0].aType)
trace("finished parsing");
return (activitiesObj);
}
}
}