A whole bunch of useful info there, cheers :D If you're listening on both phases to event X, will your handler be called twice?
-J On Wed, Mar 5, 2008 at 3:02 PM, Alex Harui <[EMAIL PROTECTED]> wrote: > For the record, so there is no more guessing: > > > > 1) The Application or WindowedApplication is not the top-level > window and does not parent popup and thus events from popups do not bubble > through the application > > 2) SystemManager is the top-level window, and all events from all > display objects bubble through the SM unless their propagation has been > stopped > > 3) Capture phase listeners on the SystemManager should get all > events for all child display objects > > 4) If no display object has focus, but the player does have focus, > then the Stage dispatches keyboard events which will not be caught by a > listener on SystemManager > > 5) Capture phase listeners on the Stage will not catch events > dispatched from the Stage, only events dispatched by children of the Stage > and thus if no display object has focus, there is no place to hook a > capture-phase listener that will catch the keyboard events dispatched from > the stage. > > > > This is why Rick's suggestion of both a capture and non-capture phase > listener on stage is correct. > > > ------------------------------ > > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Rick Winscot > *Sent:* Tuesday, March 04, 2008 8:18 PM > *To:* [email protected] > *Subject:* RE: [flexcoders] Global keyboard capture? > > > > A continuance on the topic… > > > > From the Flex reference: "All keyboard and mouse activity that is not > expressly trapped is seen by the SystemManager, making it a good place to > monitor activity should you need to do so." …and "The stage is the root of > the display list for the window." > > > > So – in reality… your implementation may determine which is better to use. > But I do have something for you that might help. If you are having problems > with the capture/bubbling/target phases you probably need to add two > listeners as… > > > > Stage.addEventListener( KeyboardEvent.KEY_DOWN, handleKeyDn, true ); > > Stage.addEventListener( KeyboardEvent.KEY_DOWN, handleKeyDn, false ); > > > > This will ensure that you are truly listening for events in all three > phases. Sorry for the earlier post – I didn't read the chain thoroughly and > thought you were trying to do something else (face turns red). > > > > Rick Winscot > > > > > > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Sherif Abdou > *Sent:* Tuesday, March 04, 2008 2:43 PM > *To:* [email protected] > *Subject:* Re: [flexcoders] Global keyboard capture? > > > > For Flex, use systemManager instead of stage from what i was told and the > capture. no idea on combo sorry > > ----- Original Message ---- > From: thirtyfivemph <[EMAIL PROTECTED]> > To: [email protected] > Sent: Tuesday, March 4, 2008 1:32:58 PM > Subject: [flexcoders] Global keyboard capture? > > I'm wanting to globally capture the keyboard in my Flex app. I want to > be notified of every keyboard event that happens as long as the Flash > Player has the focus... regardless of whether the event happens when a > UIComponent has keyboard focus or not. > > Here's what I'm doing: > > stage.addEventListe ner(KeyboardEven t.KEY_DOWN, handleKeyboard, false, > int.MAX_VALUE) ; > stage.addEventListe ner(KeyboardEven t.KEY_UP, handleKeyboard, false, > int.MAX_VALUE) ; > stage.addEventListe ner(KeyboardEven t.KEY_DOWN, handleKeyboard, true, > int.MAX_VALUE) ; > stage.addEventListe ner(KeyboardEven t.KEY_UP, handleKeyboard, true, > int.MAX_VALUE) ; > > Since the stage is at the top of the display list, and since I'm > listening for events in both the capture and bubble phase, and since I > have the highest possible event priority, should I see all keyboard > events? > > The problem is that I'm not... I've got a situation in my app where I > start seeing only keyDown events with no matching keyUp events. It > happens after I click on a ComboBox drop-down in a popup, then the > popup is closed. At that point, I only get keyDown events until I > click on another UI component. > > Any ideas what could be happening here? > > In general, is there a way I can guarantee that I can direct *all* > keyboard events to a given function? > > Thanks, > > Troy. > > > > > ------------------------------ > > Never miss a thing. Make Yahoo your > homepage.<http://us.rd.yahoo.com/evt=51438/*http:/www.yahoo.com/r/hs> > > > -- "Therefore, send not to know For whom the bell tolls, It tolls for thee." :: Josh 'G-Funk' McDonald :: 0437 221 380 :: [EMAIL PROTECTED]

