Hello all,
I’m currently stumped by this. I’ve created a class to load xml data from a txt file, then assign that xml to a variable named siteStructureXml. When I trace the value of siteStructureXml from within the class instance it shows the expected xml data. When I try to assign the value to a variable returnedXml defined on the timeline of my movie, it’s value traces as null. I’ve a feeling it’s something blindingly obvious…
The class is written as follows:
package uk.co.wearerevolting.initialisation
{
import flash.display.MovieClip
import flash.events.Event
import flash.net.URLLoader
import flash.net.URLRequest
public class XmlToVariableSetter extends flash.display.MovieClip
{
private var requestXmlUrl:URLRequest;
private var xmlFileLoader:URLLoader;
private var loadedXmlString:String;
public var siteStructureXml:XML;
public function XmlToVariableSetter()
{
}
public function loadXml():XML
{
requestXmlUrl = new URLRequest("site_structure.xml");
xmlFileLoader = new URLLoader(requestXmlUrl);
xmlFileLoader.addEventListener(Event.COMPLETE, assignXmlToVariable);
trace("loadXml value" + siteStructureXml);
return siteStructureXml;
}
public function assignXmlToVariable(event:Event):XML
{
loadedXmlString = xmlFileLoader.data;
siteStructureXml = XML(loadedXmlString);
trace("assign xml variable" + siteStructureXml);
return siteStructureXml;
}
}
}
The code on the timeline is:
import uk.co.wearerevolting.initialisation.*
var xmlSetter:XmlToVariableSetter = new XmlToVariableSetter();
var returnedXml:XML;
xmlSetter.loadXml();
returnedXml = xmlSetter.siteStructureXml;
trace(returnedXml);
Many thanks for your time