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], "Alex Harui" <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED]
On
> Behalf Of pbrendanc
> Sent: Sunday, July 06, 2008 2:28 AM
> To: flexcoders@yahoogroups.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