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);
                }
        }
}

Reply via email to