[flexcoders] UIComponent: keyUpHandler - what's it for anyway?

2007-03-07 Thread Danko Kozar
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
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)



RE: [flexcoders] UIComponent: keyUpHandler - what's it for anyway?

2007-03-07 Thread Gordon Smith
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#key 
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)