Hey Doug - thanks for the input. This is a link to a screenshot that may help 
clear up the issue:
http://www.geocities.com/tonypujals/eventcapture.jpg

What the screenshot shows is that I dragged the toolbar over the TextArea 
component. Then, I dragged the toolbar just a little bit again ... which 
resulted in the highlighted text that you see displayed. In other words, the 
toolbar isn't handling events from other components when it shouldn't - the 
opposite is happening: other components are receiving events I don't want them 
to. When I mouse down and drag the toolbar, I want it to move without events 
propagating to components below it. I want the toolbar events to be consumed 
when they act upon the toolbar.

Also, what the picture doesn't show since Windows doesn't capture it in 
screenshots is that the mouse cursor over the toolbar is an i-beam cursor - 
which is what it should be when over text, but not over the toolbar. It is only 
an i-beam when it is not specifically over one of the toolbar buttons, just the 
toolbar gradient background Canvas.

Rather than using mouse handlers for the toolbar, I tried overriding the 
onMouseXXX methods of MovieClip in the hope perhaps that this would prevent 
some superclass behavior which forwards the mouse events to further processing, 
but it didn't help....

Argh...



tony pujals| senior engineer | Yahoo! SiteBuilder Express
p. 408.349.6284 | e. tonyp * yahoo-inc . com | y!id tonypujals


________________________________________
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Doug 
Lowder
Sent: Wednesday, February 15, 2006 12:41 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Mouse Event Filtering

I should have pointed out I was talking specifically about the 
custom floating toolbar you mentioned in point 2 of your original 
post.  It seems to me your toolbar is handling events from other 
components when it shouldn't.  Try putting the event.target test 
into your toolbar code; no need to put it into any other components.

Doug

--- In flexcoders@yahoogroups.com, "Tony Pujals" <[EMAIL PROTECTED]> wrote:
>
> Thanks for the tip, Doug ... the only problem is that I want the 
toolbar to be a generic component that doesn't require any specially 
awareness from other components in the form. I don't want to mandate 
that other programmers have to modify their event-handling code just 
to accommodate my toolbar weirdness....  I'm a little surprised this 
has turned out to be so challenging. Since I know various components 
provided by Macromedia (such as Button) do behave correctly, I guess 
that there is a 'standardized' way to implement this....
> 
> 
> 
> tony pujals| senior engineer | Yahoo! SiteBuilder Express
> p. 408.349.6284 | e. tonyp * yahoo-inc . com | y!id tonypujals
> 
> ________________________________________
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On Behalf Of Doug Lowder
> Sent: Wednesday, February 15, 2006 11:02 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Mouse Event Filtering
> 
> Tony, I had a similar problem in Flex 1.5 with a custom 
TitleWindow 
> component that was receiving events from objects underneath it.  
> Never did find out exactly why that was happening; non-100% alpha 
> value, perhaps?  Anyway, I solved it by wrapping a simple check 
> around the event handler that makes sure the target property of 
the 
> event is the current object: 
> 
> if (event.target == this) { // handle the event... }
> 
> It might be worth trying that somewhere, like in a delegate for 
the 
> mouseMove event or in handleEvent().
> 
> Hope that's of some help.
> 
> Doug
> 
> 
> --- In flexcoders@yahoogroups.com, "Tony Pujals" <tonyp@> wrote:
> >
> > Well, the Flash asdocs really don't make this clear, but I 
> initially had a suspicion that overriding a handler instead of 
> registering a listener might be the answer. I didn't pursue that 
> direction right away because the method signatures don't return a 
> Boolean or some other value to indicate that an event was handled 
> and no further processing is wanted.
> > 
> > In any case, I was able to achieve the glass pane effect that I 
> wanted this morning with the following code:
> > 
> > 
> >       options = { width: "100%", height: "100%"};
> >       Canvas(createChild(Canvas, "_glassPane", options));
> >       _glassPane.setStyle("backgroundColor", "#FF00FF");
> >       _glassPane.alpha = 0;
> >       _glassPane.visible = false;
> > 
> >       MovieClip(_glassPane).onPress = function() {}
> > 
> > 
> > All of the above was required: without a backgroundColor being 
> set, events weren't captured at all; The alpha, of course, was to 
> make the glass pane actually invisible (there maybe other 
properties 
> beside backgroundColor that also work for causing events to get 
> caught, but I haven't experimented). The visible property -- once 
a 
> backgroundColor property is set -- is what enables and disables 
the 
> event capturing.
> > 
> > 
> > However, for the toolbar that I also wanted to capture events so 
> the text component below doesn't receive them, this is not yet a 
> complete solution because it also prevents the child components 
(the 
> toolbar buttons) from getting any events either. I've written some 
> code to iterate the child components, but I don't know what to 
pass 
> to them -- it seems intrinsically wrong that the toolbar needs to 
> become an event manager from its onPress handler:
> > 
> > // doesn't work -- onPress doesn't have event parameter anyway...
> > 
> > MovieClip(this).onPress = mx.utils.Delegate.create(this, function
> (event) {
> >   var comp : UIObject = null;
> >   for (var i : Number = 0; i < childDescriptors.length; i++) {
> >     comp = getChildAt(i);
> >     if (hitTest(comp)) {
> >       comp.handleEvent(event);
> >     }
> >   }
> > });
> > 
> > (Incidentally, if there is some other more appropriate way for 
> iterating child components, I'd appreciate hearing about it).
> > 
> > So Flash/Flex gurus ... what am I missing here...? Thanks!
> > 
> > Tony
> > 
> > tony pujals| senior engineer | Yahoo! SiteBuilder Express
> > p. 408.349.6284 | e. tonyp * yahoo-inc . com | y!id tonypujals
> > 
> > ________________________________________
> > From: Tony Pujals 
> > Sent: Wednesday, February 15, 2006 7:43 AM
> > To: 'flexcoders@yahoogroups.com'
> > Subject: RE: [flexcoders] Mouse Event Filtering
> > 
> > Sorry, I don't know if this works in the Flex 2 beta, but I 
should 
> have specified that we're working with Flex 1.5 at Yahoo. 
> Unfortunately, EventDispatcher states:
> > 
> >                 function addEventListener(eventType:String, 
> eventListener):Void
> >                 {
> >                                 // Note: In the future, we may 
add 
> a third parameter,
> >                                 // useCapture:Boolean, to be 
> compliant with the
> >                                 // DOM Level 3 Events spec,
> >                                 // http://www.w3.org/TR/DOM-
Level-
> 3-Events/events.html.
> >                                 .
> >                                 .
> >                                 .
> > 
> > This would have been very convenient if it were implemented. 
> Nevertheless, Button and other components do seem able to capture 
> the event. Is this a question for one of the Flash lists (any 
> recommendation to which list I should post this question)?
> > 
> > Thanks, Matt - if you or anyone else has any other ideas, I'd 
> really love to hear them
> > 
> > -Tony
> > 
> > 
> > 
> > tony pujals| senior engineer | Yahoo! SiteBuilder Express
> > p. 408.349.6284 | e. tonyp * yahoo-inc . com | y!id tonypujals
> > ________________________________________
> > From: flexcoders@yahoogroups.com 
> [mailto:[EMAIL PROTECTED] On Behalf Of Matt Chotin
> > Sent: Tuesday, February 14, 2006 9:45 PM
> > To: flexcoders@yahoogroups.com
> > Subject: RE: [flexcoders] Mouse Event Filtering
> > 
> > you want to add your mouse event listener with useCapture set to 
> true
> > and then call stopPropagation on the event in your handler (I 
> think).  I
> > believe that will prevent it from moving further down the 
> hierarchy.
> > 
> > -----Original Message-----
> > From: flexcoders@yahoogroups.com 
> [mailto:[EMAIL PROTECTED] On
> > Behalf Of Tony Pujals
> > Sent: Tuesday, February 14, 2006 5:27 PM
> > To: flexcoders@yahoogroups.com
> > Subject: [flexcoders] Mouse Event Filtering
> > 
> > There are two variations to my question, but they should share a 
> common
> > solution:
> > 
> > 1) I want to create a "glass pane" - ie, a transparent layer 
that 
> can
> > capture/consume mouse events without allowing the event to 
bubble 
> to a
> > component below it. I've tried to achieve this effect with a 
> transparent
> > Canvas, but the component below it (eg, a TextArea), also 
catches 
> the
> > event.
> > 
> > 2) I have a floating toolbar that extends Canvas. I don't want 
to 
> use
> > the PopUpManager because of issues with the FocusManager and 
> TextArea
> > that causes text to be selected incorrectly when focus is 
returned 
> after
> > focus was transferred to a toolbar button. If the toolbar is 
> floating
> > above the TextArea component, the cursor changes to an ibeam. If 
I 
> click
> > down on the toolbar to drag it, the toolbar drags, but the 
> TextArea also
> > gets the events, causing text to become selected. I want the 
> toolbar to
> > consume the mouse events occurring on it without any further 
event
> > bubbling.
> > 
> > 
> > Since the toolbar has a mouseMove handler that allows me to drag 
> it, I
> > can drag even by pressing mouse down on a toolbar button. I 
guess 
> the
> > toolbar as parent is receiving and handling the mousedown, even 
> though
> > the mouse down event is also propagating to its child button 
> component
> > as well (I actually do not want this behavior either, but I 
> suppose I
> > can solve this easily enough with hitTest). But what is really
> > interesting is that the event stops there if it's caught by the 
> button
> > -- the TextArea below the toolbar doesn't get the event in this 
> case. So
> > something about a Button or its superclasses makes it special, 
but 
> the
> > difference isn't apparent to me in the AS source provided with 
> Flex.
> > 
> > Any insight is appreciated. Thanks!
> > 
> > -Tony
> > 
> > 
> > 
> > tony pujals| senior engineer | Yahoo! SiteBuilder Express
> > p. 408.349.6284 | e. tonyp * yahoo-inc . com | y!id tonypujals
> > 
> > 
> > 
> > 
> > 
> > --
> > Flexcoders Mailing List
> > FAQ: 
> http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives:
> > http://www.mail-archive.com/flexcoders%40yahoogroups.com 
> > Yahoo! Groups Links
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > --
> > Flexcoders Mailing List
> > FAQ: 
> http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives: http://www.mail-archive.com/flexcoders%
> 40yahoogroups.com 
> > 
> > SPONSORED LINKS 
> > Web site design development 
> > Computer software development 
> > Software design and development 
> > Macromedia flex 
> > Software development best practice 
> > 
> > 
> > ________________________________________
> > YAHOO! GROUPS LINKS 
> > 
> > *  Visit your group "flexcoders" on the web.
> >   
> > *  To unsubscribe from this group, send an email to:
> > [EMAIL PROTECTED]
> >   
> > *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
> Service. 
> > 
> > ________________________________________
> >
> 
> 
> 
> 
> 
> 
> 
> --
> Flexcoders Mailing List
> FAQ: 
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives: http://www.mail-archive.com/flexcoders%
40yahoogroups.com 
> 
> 
> SPONSORED LINKS 
> Web site design development 
> Computer software development 
> Software design and development 
> Macromedia flex 
> Software development best practice 
> 
> 
> ________________________________________
> YAHOO! GROUPS LINKS 
> 
> *  Visit your group "flexcoders" on the web.
>   
> *  To unsubscribe from this group, send an email to:
> [EMAIL PROTECTED]
>   
> *  Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service. 
> 
> ________________________________________
>







--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 


SPONSORED LINKS 
Web site design development 
Computer software development 
Software design and development 
Macromedia flex 
Software development best practice 


________________________________________
YAHOO! GROUPS LINKS 

*  Visit your group "flexcoders" on the web.
  
*  To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
  
*  Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 

________________________________________



--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to