Yup, brain fart. This works just grand:
application.addEventListener("keyUp",mx.utils.Delegate.create(this,
keyHandler));
Use application instead of _root.
From: Gordon Smith [mailto:[EMAIL PROTECTED]
Sent: Friday, April 01, 2005 4:38 PM
To: '[email protected]'
Subject: RE: [flexcoders] Key class Help
- Gordon
-----Original Message-----
From: Matt Horn [mailto:[EMAIL PROTECTED]
Sent: Friday, April 01, 2005 1:30 PM
To: [email protected]
Subject: RE: [flexcoders] Key class Help
Another variation on this is to use addEventListener on the keyUp event
of _root. Of course, using "_root" is discouraged, but I haven't been
able to figure out an alternative.
---------begin--------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"
initialize="initApp()" height="500" width="300" >
<mx:Script><![CDATA[
function debugTrace(msg){
_ta.text+= msg + newline;
}
function initApp() {
_root.addEventListener("keyUp",mx.utils.Delegate.create(this,
keyHandler));
}
function keyHandler(event) {
debugTrace("Key:" + event.code + "(" + event.ascii + ")");
}
]]></mx:Script>
<mx:VBox>
<mx:TextInput id="my_input" change="debugTrace('TextInput value
changed')" />
<mx:TextArea id="_ta" text="" width="200" height="200"/>
</mx:VBox>
</mx:Application>
------------end---------------
HTH,
Matt Horn
________________________________
From: Abdul Qabiz [mailto:[EMAIL PROTECTED]
Sent: Friday, April 01, 2005 1:22 AM
To: [email protected]; '[email protected]'
Subject: RE: [flexcoders] Key class Help
Hi Hari,
What I understand, you want to assign some keyboard shortcuts to
each
control on screen so that when shortcut key is pressed, control
get
focussed?
You can easily achieve this using Key object, as demonstrated in
code later
in this mail.
I am assuming,
- user would press CTRL + 1, CTRL + 2 ...to focus a control on
screen.
- user can press SPACE key to execute associated action with the
controls
like Button, CheckBox, RadioButton or any button kind of
component.
- user can use arrow keys to change values in list type of
controls like
ComboBox
- user can type in textfield like control....
Following example has some controls on screen and pressing CTRL
+ 1 .. CTRL
+ 5 shifts the focus to corresponding control....
I would like to help you my best so that you are successful in
creating a
very accessible Flex app.
Please run it to find out more.. Following code is quick & dirty
demo, you
can always write a ShortcutManager class which is more easier to
use and
managable...
###KeyObjectDemo.mxml###
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"
initialize="initApp()">
<mx:Script>
<![CDATA[
var keyListener:Object;
function debugTrace(msg)
{
_ta.text+= msg + newline;
}
function initApp()
{
keyListener = new Object();
keyListener.> shorcutHandler);
Key.addListener(keyListener);
}
function shorcutHandler()
{
var bControlPressed:Boolean = Key.isDown(Key.CONTROL);
if(bControlPressed) { //CTRL
if(Key.isDown(49)) { // 1
debugTrace("CTRL + 1");
//set focus to textfield
my_input.setFocus();
}else if(Key.isDown(50)) { //2
debugTrace("CTRL + 2");
//set focus to button
my_btn.setFocus();
// my_btn.dispatchEvent({type:"click"});
}else if(Key.isDown(51)) { //3
debugTrace("CTRL + 3");
my_radio.setFocus();
// my_radio.selected = true;
// my_btn.dispatchEvent({type:"change"});
}else if(Key.isDown(52)) { //4
debugTrace("CTRL + 4");
my_check.setFocus();
}else if(Key.isDown(53)) { //5
debugTrace("CTRL + 5");
my_combo.setFocus();
}
}
}
]]>
</mx:Script>
<mx:TextInput id="my_input" focusIn="debugTrace('TextInput
focussed')"
change="debugTrace('TextInput value changed')"/>
<mx:Button label="Button" id="my_btn"
focusIn="debugTrace('Button
focussed')" click="debugTrace('button pressed')"/>
<mx:RadioButton label="radio" id="my_radio"
focusIn="debugTrace('RadioButton focussed')"
click="debugTrace('Radio button
selected')"/>
<mx:CheckBox label="Checkbox" id="my_check"
focusIn="debugTrace('CheckBox
focussed')" click="debugTrace('CheckBox change')"/>
<mx:ComboBox id="my_combo" focusIn="debugTrace('ComboBox
focussed')"
change="debugTrace('ComboBox selection changed')">
<mx:dataProvider>
<mx:Array>
<mx:String>India</mx:String>
<mx:String>USA</mx:String>
<mx:String>Australia</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:ComboBox>
<mx:VBox>
<mx:Label text="Debug Info:"/>
<mx:TextArea id="_ta" text="" width="200" height="200"/>
</mx:VBox>
</mx:Application>
Hope that helps..
-abdul
-----Original Message-----
From: Doodi, Hari - BLS CTR [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 31, 2005 8:48 PM
To: '[email protected]'
Subject: [flexcoders] Key class Help
Hi list,
I need some help/explanation about Key class. Based on the
examples
mentioned in the live docs as well as in Action Script Language
Reference I
created the following mxml files. I want to use the Key class to
allow the
user use key board to access UI Objects, but no success. Any
help
appreciated.
<<Keyboard_2.mxml>> <<Keyboard_0.mxml>> <<Keyboard_1.mxml>>
Thanks!
Hari
Yahoo! Groups Links
________________________________
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]
<mailto:[EMAIL PROTECTED]>
* Your use of Yahoo! Groups is subject to the Yahoo! Terms
of Service <http://docs.yahoo.com/info/terms/> .
Yahoo! Groups Links
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 the Yahoo! Terms of Service.

