Apache flex Flex RichTextEditor-放弃Ctrl+;Y

Apache flex Flex RichTextEditor-放弃Ctrl+;Y,apache-flex,air,keydown,rich-text-editor,undo-redo,Apache Flex,Air,Keydown,Rich Text Editor,Undo Redo,我在AIR桌面应用程序中使用RichTextEditor,它是用flex 3.6构建的 因为没有撤销/重做管理,所以我尝试扩展组件功能 我有一个函数,每次按下CTRL+Y时我都会遇到问题 这就是我按下一个键时实际做的事情 <mx:RichTextEditor id="myRTE" keyDown="onKeyDown(event);" /> .... public function onKeyDown(event:KeyboardEvent):void {

我在AIR桌面应用程序中使用RichTextEditor,它是用flex 3.6构建的

因为没有撤销/重做管理,所以我尝试扩展组件功能

我有一个函数,每次按下CTRL+Y时我都会遇到问题

这就是我按下一个键时实际做的事情

<mx:RichTextEditor 
    id="myRTE"
    keyDown="onKeyDown(event);"
/>

....

public function onKeyDown(event:KeyboardEvent):void
{
    if (event.ctrlKey && event.charCode == 122)
    {
        // ctrl + z pressed!
        undo();
    }

    if (event.ctrlKey && event.charCode == 121)
    {
        // ctrl + y pressed!
        redo();
    }
}

....
公用函数onKeyDown(事件:KeyboardEvent):无效
{
if(event.ctrlKey&&event.charCode==122)
{
//按下ctrl+z键!
撤消();
}
if(event.ctrlKey&&event.charCode==121)
{
//按下ctrl+y组合键!
重做();
}
}
我的问题是,在我的RichTextEditor中,CTRL+Y输出也是一个奇怪的字符,但我想放弃它

我试着放一个事件。停止即时传播();就在重做之后();但是奇怪的字符被附加到我的RichTextEditor中

我真的不知道如何摆脱它

有什么想法吗?

您可以使用以下代码:

protected function application1_creationCompleteHandler(event:FlexEvent):void {
    myRTE.textArea.addEventListener(TextEvent.TEXT_INPUT, textInput);
}

private function textInput(event:TextEvent):void {
    // <CTRL+V pressed
    if (event.text.length > 1)
        event.preventDefault();
}
受保护函数应用程序1\u creationCompleteHandler(事件:FlexEvent):无效{
myRTE.textArea.addEventListener(TextEvent.TEXT\u输入,textInput);
}
私有函数textInput(事件:TextEvent):无效{
//  1)
event.preventDefault();
}
RichTextEditor封装并使用TextArea。您可以为TextEvent.TEXT\u输入添加事件以防止CTRL+V事件

您可以使用以下代码:

protected function application1_creationCompleteHandler(event:FlexEvent):void {
    myRTE.textArea.addEventListener(TextEvent.TEXT_INPUT, textInput);
}

private function textInput(event:TextEvent):void {
    // <CTRL+V pressed
    if (event.text.length > 1)
        event.preventDefault();
}
受保护函数应用程序1\u creationCompleteHandler(事件:FlexEvent):无效{
myRTE.textArea.addEventListener(TextEvent.TEXT\u输入,textInput);
}
私有函数textInput(事件:TextEvent):无效{
//  1)
event.preventDefault();
}

RichTextEditor封装并使用TextArea。您可以为TextEvent.TEXT\u输入添加事件以防止CTRL+V事件

非常感谢你,伊万!我刚刚在redo()之后添加了event.preventDefault();。这足以满足我的需要!非常感谢你,伊万!我刚刚在redo()之后添加了event.preventDefault();。这足以满足我的需要!