I'm trying to do what i think should be pretty simple.
I want to dispatch an event when my xml has completed lodaing.
For the life of me i can't figure out why event does not get
dispatched from "handleXML", I know the listner works because I've
tested it by dispatching the same event from a button click.
Any ideas what I may be doing wrong?
package {
import flash.display.Sprite;
import com.acme.AppController;
import com.acme.MyService;
public class MyView extends Sprite
{
public function MyView()
{
var controller:MyController = new MyController(this);
}
}
}
package com.acme
{
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.display.Sprite;
import com.acme.MyService;
public class MyController extends EventDispatcher
{
private var _view:Sprite;
private var _service:MyService;
public function MyController(target:Sprite){
_view = target;
_view.addEventListener("xmlLoaded", doSomething);
_service = new MyService();
}
public function doSomething(e:Event):void{
trace("doSomething CALLED");
}
}
}
package com.acme
{
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class MyService extends EventDispatcher
{
private var _loader:URLLoader;
private var _xml:XML;
public function MyService(){
_loader = new URLLoader();
_loader.addEventListener(Event.COMPLETE, handleXML);
_loader.load(new URLRequest("xml/data.xml"));
}
public function handleXML(event:Event):void{
dispatchEvent(new Event("xmlLoaded", true)); // this
never fires
_xml = new XML(_loader.data);
}
}
}