使Flex 3按钮响应回车键的最佳方法是什么?

Jim*_*xas 9 apache-flex

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

当用户按下回车键时,是否有一种直接的方法可以使具有焦点的Flex 3按钮调用其单击处理程序?

Chr*_*ato 8

当然,你可以这样做:

<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)" />
Run Code Online (Sandbox Code Playgroud)

...虽然我不喜欢在这些对象之外的对象上调度事件.更简洁的方法可能是将Button子类化,在子类中添加侦听器和处理程序,然后从该类中调度click事件.但这应该有助于说明这一点.祝好运!