I don't think you're listening to the service

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Daniel Freiman
Sent: Wednesday, May 23, 2007 7:29 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] AS3: dispatchEvent from within event handler?

 

I'd set listeners for error events to make sure the file is actually
being loaded successfully.  Just copy/paste/edit from example in the
livedocs (
http://livedocs.adobe.com/flex/201/langref/flash/net/URLLoader.html
<http://livedocs.adobe.com/flex/201/langref/flash/net/URLLoader.html> ).

Dan Freiman
nondocs <http://nondocs.blogspot.com> 



On 5/23/07, ronnlixx <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote:

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