Thanks, Gordon! This was very helpful indeed! I implemented it and - it works.
Your explanation was excellent because at the first moment I was wondering how declaring an interface (without writing actual methods) can make a change. But since UIComponent checks if it implements this interface and does it's stuff... :-) --- In flexcoders@yahoogroups.com, "Gordon Smith" <[EMAIL PROTECTED]> wrote: > > The UIComponent constructor has the logic > > if (this is IFocusManagerComponent) > { > addEventListener(FocusEvent.FOCUS_IN, focusInHandler); > addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); > addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); > addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); > } > > In order to receive keyboard events, your component must implement > IFocusManagerComponent: > > "The base implementations of this interface are in the UIComponent > class, > but UIComponent does not implement the full IFocusManagerComponent > interface > since some UIComponents are not intended to receive focus. > Therefore, to make a UIComponent-derived component be a valid focusable > component, you simply add "implements IFocusManagerComponent" to the > class > definition." > > If you're writing an MXML component, you declare that it implements an > interface with the tag attribute > > implements="mx.managers.IFocusManagerComponent" > > - Gordon > > ________________________________ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of Danko Kozar > Sent: Wednesday, March 07, 2007 3:20 AM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] UIComponent: keyUpHandler - what's it for anyway? > > > > The livedocs suggest that every UIComponent has automatically set > event listeners for keyUp (adn keyDown) events: > http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#key > <http://livedocs.adobe.com/flex/2/langref/mx/core/UIComponent.html#ke y> > UpHandler() > > So, I expected that it's enough to override this method to make some > action on key-click. But that isn't the case.. Instead - nothing > happens. > > Here's my code: > > override protected function keyUpHandler(event:KeyboardEvent):void { > super.keyUpHandler(event); > if (event.keyCode == Keyboard.DELETE){ > mx.controls.Alert.show("Key DELETE clicked."); > } > } > > (ps. I prefer not to register key listeners by myself > (using "addEventListener"), rather use this default behaviour if > possible) >