Actionscript 3 单击鼠标并按enter键调用相同的事件处理程序

Actionscript 3 单击鼠标并按enter键调用相同的事件处理程序,actionscript-3,apache-flex,flex3,Actionscript 3,Apache Flex,Flex3,我们是否可以使用相同的事件处理程序来侦听鼠标单击事件和按下enter键时发送的事件 谢谢。以下代码可能会帮助您:- <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx

我们是否可以使用相同的事件处理程序来侦听鼠标单击事件和按下enter键时发送的事件


谢谢。

以下代码可能会帮助您:-

    <?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;

            private function callHandler(event:*):void
            {
                if ( event.type == KeyboardEvent.KEY_DOWN || event.type == MouseEvent.CLICK)
                { 
                    if (event.type == MouseEvent.CLICK || (event as KeyboardEvent).charCode == 32 )
                    {
                        Alert.show("Clicked", "Alert"); 
                    }

                }
            }

        ]]>
    </fx:Script>

    <s:Button label="Click" x="100" y="100" click="{callHandler(event)}" keyDown="{callHandler(event)}"/>
</s:Application>


你是说
FlexEvent.ENTER
还是
KeyboardEvent
?他还想做一个嵌套的条件测试来测试ENTER键
if(e.type==KeyboardEvent.KEY_DOWN | | e.type==MouseEvent.CLICK){if((e as KeyboardEvent.code==13 | | e.type==MouseEvent.CLICK){要运行的代码在这里}
。也可能值得为null的事件参数设置默认值,以便在没有事件的情况下调用它。