在Flex 3中,当用鼠标单击按钮或当它们具有焦点并且用户按下空格键时,按钮将调用其单击处理程序。

有没有一种简单的方法可以使具有焦点的Flex 3按钮在用户按下Enter键时调用其单击处理程序?

最佳答案

当然,您可以执行以下操作:

<mx:Script>
    <![CDATA[
        import mx.controls.Alert;

        private function btn_click(event:MouseEvent):void
        {
            Alert.show("Clicked!");
        }

        private function btn_keyDown(event:KeyboardEvent):void
        {
            if (event.keyCode == Keyboard.ENTER)
                btn.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
        }
    ]]>
</mx:Script>

<mx:Button id="btn" label="Click Me" click="btn_click(event)" keyDown="btn_keyDown(event)" />

...尽管我不是非常热衷于在这些对象之外的对象上调度事件。较干净的方法可能是子类化Button,在子类中添加监听器和处理程序,然后从该类中调度click事件。但这应该有助于说明这一点。祝你好运!

关于apache-flex - 使Flex 3按钮响应Enter键的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/462618/

10-13 09:19
查看更多