Thx - I think I get it now - the  default dispatcher works only for 
parents /child relationships of graphics objects only. If objects are
external (e.g. siblings, non visual  etc.) a custom dispatcher than
maintains a list of related components via some registration mechanism
is required. I assume the best place to perform such registration  would
be in the  constructor of my custom class. (I assume this is how
Cairngorm and other frameworks are managing inter  object/component
communication).

Thx for setting me straight here. FWIW this is part of a game board demo
I'm putting together and it could be the basis for a useful
demo/tutorial on to share with others - any suggestions on where to post
this type of example (I don't currently maintain a web site or blog).?

Thx again
Patrick

--- In flexcoders@yahoogroups.com, "Alex Harui" <[EMAIL PROTECTED]> wrote:
>
> In general, you have to be listening to the object that is
dispatching.
> If you use bubble or capture, you can listen to parents if they are
> display objects.
>
>
>
> 3 siblings would need to know about each other and listen to each
other.
> Having them register with a central object that dispatches on their
> behalf or they dispatch from might be better.  That's how
> RadioButton/RadioButtonGroup work.
>
>
>
> ________________________________
>
> From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On
> Behalf Of pbrendanc
> Sent: Sunday, July 06, 2008 4:29 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Problem Adding Custom Event Listeners in a
> component?
>
>
>
> I think I need some additional clarification here as I'm not sure why
> this is not OK- (I expect the button to respond to the custom event
> regardless of who dispatched this event).
>
> Imagine 3 buttons in a grid: B1, B2,B3. Clicking on any button and
> updates the appearance (e.g. label color) of the other 2 buttons (i.e.
> everyone else but the clicked button). Do this w/out any hard coding
> the names in click events etc. - each button gets a list of dependent
> btn ID's - if you are on the list update yourself, otherwise ignore.
>
> What I need to do here is to have the containing (parent??) form
> intercept (override?) the button click event, perform some
preprocessing
> (e.g. build a list) and forward this list by dispatching a custom
event
> . (In the example below you can see that clicking a button affects
> other buttons.
>
> Where I'm stuck is on how best to setup the listeners ,and intercept
> the parent button click event. Per my previous message the custom
> handler on the button is never triggered.
>
> (Maybe I'm missing the wood for the tree's here - however it's a good
> exercise that will solidify my understanding of the Flex event model)
>
> TIA,
> Patrick
>
> --- [EMAIL PROTECTED]
<mailto:Inflexcoders%40yahoogroups.com>
> , "Alex Harui" aharui@ wrote:
> >
> > Hard to say from the code snippets, but it looks like your button is
> > listening for addItemEvent on itself, but it is the app that is
> > dispatching
> >
> >
> >
> > ________________________________
> >
> > From: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
> [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>
> ]
> On
> > Behalf Of pbrendanc
> > Sent: Sunday, July 06, 2008 2:28 AM
> > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
> > Subject: [flexcoders] Problem Adding Custom Event Listeners in a
> > component?
> >
> >
> >
> > I have a custom button on which I want to listen to some custom
> > events. For some reason in the following code my custom events are
> > never heard/triggered.
> >
> > 1)In the button's constructor I added the listeners as follows:
> >
> > // Custom Class Code
> > public class testButton extends Button
> > {
> > //constructor
> > public function testButton {
> > addEventListener (MouseEvent.MOUSE_OVER, handleMouseOver);
> > // custom event
> > addEventListener("addItemEvent", handleAddItemEvent);
> > }
> > public function handleMouseOver (event:MouseEvent):void {
> > // display as a tooltip
> > this.toolTip = "Say Cheese";
> >
> > public function handleAddItemEvent():void {
> > // display as a tooltip
> > Alert.show ("testButton Event: Add Item Event");
> >
> > 2) Parent Form Code (app.mxml)
> >
> > <mx:Metadata>
> > [Event(name="addItemEvent", type = "flash.events.Event")]
> > </mx:Metadata>
> >
> > // Code in test button to dispatch custom event
> > //
> > private function triggerEventHandler():void {
> > //Alert.show ("Broadcast Event");
> > dispatchEvent(new Event("addItemEvent",true));
> > }
> >
> > This looks like it should work, but only the MouseOver event is ever
> > fired - am I missing something obvious?
> >
> > TIA
> > Patrick
> >
>


Reply via email to