> Does EventDispatcher calls the listeners synchronously or
asynchronously?
 
Synchrously, in the order that they were added. To see that the handlers
execute before dispatchEvent() returns, add a handler which traces out
something and single-step in FlexBuilder or fdb over a dispatchEvent()
call. You should see the trace output.
 
BTW, I may be the only person in the world that distinguishes between a
listener and a handler. A listener is an object that is interested in
knowing about an event dispatched by another object, while a handler is
a method of the listener that executes in response to the event. The
name addEventListener() is somewhat confusing. You might think that
you'd have to pass it both listener and a handler (to tell it which
method to execute, and which object to use as the method's 'this'), but
due to the magic of method closures, you only need to pass the handler
and it implies the listener.
 
> Does the EventDispatcher make copies of the event
> object provided to EventDispatcher's dispatchEvent
> function when calling the listeners? Let say, I define
> 2 listeners for specific event type. The first
> listener modify some properties of the event object.
> Do the second listener get the modified one or the
> copy of the original one?

The second listener gets the modified event instance. A copy doesn't
happen in this case.
 
However, when an event handler calls dispatchEvent() to redispatch the
event in the middle of event processing, then dispatchEvent() close the
event's clone() method to copy it and redispatches the copy.
 
Gordon Smith
Adobe Flex SDK Team

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Jehanzeb Musani
Sent: Wednesday, November 28, 2007 1:42 PM
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Events and Non-Display Objects



You can adopt the following two options to achieve
your requirements.

1. Your MXML Object should Implement the
IEventDispatcher interface and internally it creates
an instance of EventDispathcer class and delegates
calls to that instance.

2. If you dont want to use built-in event dispatcher
and you want to define your own function definition,
then you can defines an interface and all the
listeners should implement that interface. Moreover,
you should methods in your MXML Object to register and
unregister those listeners and call the specific
method of that interface on some condition.

Gordon, I want to ask you a few questions regarding
event dispatching mechanism of default
EventDispatcher.

1. Does EventDispatcher calls the listeners
synchronously or asynchronously?

2. Does the EventDispatcher make copies of the event
object provided to EventDispatcher's dispatchEvent
function when calling the listeners? Let say, I define
2 listeners for specific event type. The first
listener modify some properties of the event object.
Do the second listener get the modified one or the
copy of the original one?

--- Gordon Smith <[EMAIL PROTECTED] <mailto:gosmith%40adobe.com> >
wrote:

> Or your Object subclass could create an
> EventDispatcher instance which
> can dispatch events on its behalf:
> 
> var eventDispatcher:EventDispatcher = new
> EventDispatcher(this);
> eventDispatcher.dispatchEvent(event);
> 
> Gordon Smith
> Adobe Flex SDK Team
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>

> [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> ] On
> Behalf Of Alex Harui
> Sent: Wednesday, November 28, 2007 1:26 PM
> To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> 
> Subject: RE: [flexcoders] Events and Non-Display
> Objects
> 
> 
> 
> You can try extending EventDispatcher and dispatch
> events
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>

> [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> ] On
> Behalf Of bithroop
> Sent: Wednesday, November 28, 2007 10:18 AM
> To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> 
> Subject: [flexcoders] Events and Non-Display Objects
> 
> 
> 
> General question here...
> 
> I understand Event flow with objects in the display
> list. They flow
> either up (bubbling) or down (capture) between
> parent and child. Maybe
> an oversimplification but my question really is
> about how to handle
> events with objects that are not in the display
> list. How do you pass
> events from them? Like for instance, I've got this
> situation here...
> 
> I have an MXML that is just an <mx:Object>. It's
> MXML because I'm
> defining some remoteObjects in it and that's just
> way more fun to do
> in MXML than in AS. So anyway, regardless, the
> methods inside are
> static and I don't want to draw the thing. It just
> needs to hang out
> and be available so I can make these remoting calls.
> 
> So there's the rub. How can this MXML talk back to
> where it was called
> from? Can I use events for this or do I need to send
> a callback
> function?
> 
> Any wisdom here would be awesome... this has been
> befuddling me for a
> while.
> 
> -b
> 
> 
> 
> 
> 

__________________________________________________________
Get easy, one-click access to your favorites. 
Make Yahoo! your homepage.
http://www.yahoo.com/r/hs <http://www.yahoo.com/r/hs>  


 

Reply via email to