Class instance returns null value

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