Jump to content
Search Community

How does LoaderMax, XMLLoader or other loaders parse data?

Marcus Aurelius test
Moderator Tag

Recommended Posts

I was wondering how LoaderMax, XMLLoader or other loaders parse data?

I have got a fare way into setting up a fullscreen website project and have been using variables to parse data from an xml file(for example) :

// headerSpacer Variables
private var headerSpacerSpt:Sprite = new Sprite();
private var useHeaderSpacer:Boolean;
private var headerSpacerSptX:int;
private var headerSpacerSptY:int;
private var headerSpacerSptHeight:int;
private var headerSpacerSptAlpha:Number;
private var headerSpacerSptColor:uint;  

// Create headerSpacer
 private function makeHeaderSpacer():void
 {
  useHeaderSpacer = stringToBoolean(xml.mainPage.headerSpacer.useBkgrd.text());
  headerSpacerSptX = parseInt(xml.mainPage.headerSpacer.x);
  headerSpacerSptY = parseInt(xml.mainPage.headerSpacer.y);
  headerSpacerSptHeight = parseInt(xml.mainPage.headerSpacer.Height);
  headerSpacerSptAlpha = Number (xml.mainPage.headerSpacer.bkgrdAlpha);
  headerSpacerSptColor = uint(xml.mainPage.headerSpacer.bkgrdColor);

  if (useHeaderSpacer)
  {
var headerSpacerBar:Graphics = headerSpacerSpt.graphics;
headerSpacerBar.beginFill(headerSpacerSptColor,headerSpacerSptAlpha);
headerSpacerBar.drawRect(0,0,maxWidth,headerSpacerSptHeight);
headerSpacerBar.endFill();
addChild(headerSpacerSpt);
headerSpacerSptX = Number(xml.mainPage.headerSpacer.x);
headerSpacerSptY = Number(xml.mainPage.headerSpacer.y);
headerSpacerSpt.x = headerSpacerSptX;
headerSpacerSpt.y = headerSpacerSptY;
headerSpacerSpt.scaleX = maxWidth;
  }
 }  

When I noticed that if I just put the path e.g.

xml.mainPage.headerSpacer.x

I get the same result if I was to put e.g.

private var headerSpacerSptX:int;
headerSpacerSptX = parseInt(xml.mainPage.headerSpacer.x);
headerSpacerSptX = Number(xml.mainPage.headerSpacer.x);
headerSpacerSpt.x = headerSpacerSptX;

So I guess my question is: Has LoaderMax or the XMLLoader already parsed the xml data through:

// load the xml data
  var xmlLoader:XMLLoader = new XMLLoader("com/siteA/assets/data/xml/config.xml",{name:"xmlData",
	requireWithRoot:this.root,
	container:swfContainer,
	maxConnections:1,
	estimatedBytes:10000,
	onProgress:appLoading,
	onComplete:appLoaded,
	onChildProgress:childLoading,
	onChildComplete:childLoaded});
  XML.ignoreWhitespace = true;
  xmlLoader.load(true);

// XMLLoader - onComplete:appLoaded
 private function appLoaded(e:LoaderEvent):void
 {
  xml = new XML(LoaderMax.getContent("xmlData"));
 }

 

or do I need to put all that extra code to parse the data.

Link to comment
Share on other sites

XMLLoader just sees the text content of your XML file and creates an XML() object with it.

 

I've never run into the situation where i have had to use parseInt() and then Number() conversion functions on xml data.

 

when your movie compiles Flash has no idea what type of value

xml.mainPage.headerSpacer.x

is (or if that .x even exists) so I really don't think you are going to get compiler errors if you skip those conversions.

 

consider the following:

 

 

var num:Number;  //specify that num should be a Number
var dataFromXML;  //create a var with no type specified
dataFromXML = "5";  
num = dataFromXML; //at compile time Flash sees this as ok and doesn't throw an error.
trace(num); //output 5

 

even though dataFromXML is a String, num can still accept that String value

the above code won't throw any compile or run-time errors.

Link to comment
Share on other sites

I would of replied sooner but Ive been having trouble with "greensock.loading.display.ContentDisplay" where i have swf's loaded into a sprite that reference the ContentDislay (var swf:ContentDisplay = e.target.content as ContentDisplay) onto a stage of 800px wide and 550px high, but when I put a trace on the sprite's width holding the swf's the is width is 1709px and I cant figure that out. (sorry, I might be better to open a new thread for that, just been working on it all day and totally frustrated).

 

OOpps I forgot to change that. The "Number" i was using for a different "if" statement e.g.

"xPos += useHeaderImage && !useHeaderBkgrd ? Number (xml.mainPage.header.Height) : 0;" and for got to take that off.

 

Does the XMLLoader automatically parse the xml file data or do i have to use "parseInt" or parse any xml data? or can I just use any path e.g. "xml.mainPage.headerSpacer.x" or "xml.mainPage.headerSpacer.bkgrdColor" which would have this result.

 

<x>0</x>
<bkgrdColor>0xff6699</bkgrdColor>

 

I dont get any errors and it returns the correct values.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...