【发布时间】:2012-03-02 00:53:41
【问题描述】:
我有一个通过 ctrl+z、ctrl+y 执行的带有撤消/重做的 TextArea。我的应用程序是一个移动应用程序,软键盘上没有 cntrl,所以我想做一个模拟按键的撤消和重做按钮。如何在 Flex 中模拟按键?
【问题讨论】:
标签: apache-flex events simulate
我有一个通过 ctrl+z、ctrl+y 执行的带有撤消/重做的 TextArea。我的应用程序是一个移动应用程序,软键盘上没有 cntrl,所以我想做一个模拟按键的撤消和重做按钮。如何在 Flex 中模拟按键?
【问题讨论】:
标签: apache-flex events simulate
您可以调度任何您喜欢的事件,包括 KeyboardEvents,以便调度模拟 ctrl-z(键码 26)和 ctrl-y(键码 25)的 KeyboardEvent,您可以执行以下操作:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="creationCompleteHandler(event)">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function creationCompleteHandler(event:FlexEvent):void
{
this.addEventListener( KeyboardEvent.KEY_UP, keyHandler );
}
protected function clickHandler(event:MouseEvent):void
{
this.dispatchEvent( new KeyboardEvent( KeyboardEvent.KEY_UP, true, false, 26, 26, 0, true ) );
}
protected function keyHandler( e:KeyboardEvent ):void
{
trace(e.charCode, e.keyCode, e.ctrlKey);
}
]]>
</mx:Script>
<mx:Button id="undoButton" label="undo" click="clickHandler(event)" />
</mx:Application>
this.dispatchEvent( new KeyboardEvent( KeyboardEvent.KEY_UP, true, false, 26, 26, 0, true ) ); 行是键(不是双关语),它说调度一个 KEY_UP 事件,接下来的两个参数是气泡并且可以取消,然后 charCode 和 keyCode 都是 26,keyLocation 是 0,最后是 ctrlKey (模拟它被关闭)。
【讨论】: