Spark按钮 - 为什么不按Enter键触发点击事件?

时间:2011-09-08 07:38:53

标签: flex button click enter flex-spark

我有点困惑为什么这不是默认行为?

那么,如何检测按下按钮的输入键并触发click事件处理程序? (例如,在TextInput字段中有一个'enter'事件)

由于

2 个答案:

答案 0 :(得分:2)

编辑:回滚到原始帖子,只有在选择按钮时才会触发事件

当用户将焦点设置在按钮上并且与键盘输入键无关时,将触发enter事件。如果我没弄错,激活Flash中按钮的默认键是空格键。您可以通过执行以下操作来使用Enter:

myButton.addEventListener(KeyboardEvent.KEY_DOWN, onMyButtonKeyDown);

private function onMyButtonKeyDown(event:KeyboardEvent):void
{
    //simulate click if enter pressed
    if(event.keyCode == Keyboard.ENTER)
        myButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}

答案 1 :(得分:2)

编辑:忽略我之前发布的所有内容。

您可以在spark按钮上使用keyDown事件,并使用KeyboardEvent创建事件处理程序。

        <s:Button label="Submit" keyDown="enter_pressed(event)" id="submit" click="submit_clickHandler(event)"/>

        protected function enter_pressed(event:KeyboardEvent):void { 
            if(event.charCode == Keyboard.ENTER){
                submit.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
            }
        }