Ok here's how I'm doing it now:
XMLManager:
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class XMLManager extends EventDispatcher
{
private var xmlFile:String;
private var ldr:URLLoader;
private var req:URLRequest;
private var xmlData:XML;
public function XMLManager(file:String):void
{
xmlFile = file;
ldr = new URLLoader();
req = new URLRequest(xmlFile);
ldr.addEventListener(Event.COMPLETE, xmlLoaded);
ldr.load(req);
}
public function xmlLoaded(e:Event = null):void
{
xmlData = new XML(e.target.data);
dispatchEvent(new Event(Event.COMPLETE));
}
public function set file(str:String):void
{
xmlFile = str;
}
public function get data():XML
{
return xmlData;
}
}
}
Document Class:
private function populateCounList():void
{
manager = new XMLManager("countries.xml");
manager.xmlLoaded().addEventListener(Event.COMPLETE, dataReady);
}
private function dataReady(e:Event):void
{
xmlData = e.target.data;
var dp:DataProvider = new DataProvider();
var list:XMLList = new XMLList(xmlData.country);
for (var i:uint = 0; i < list.length(); i++)
{
dp.addItem( { label: list[i] } );
}
countryList.dataProvider = dp;
}
This is the error am getting:
1061: Call to a possibly undefined method addEventListener through a reference with static type void.