1

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

由于没有撤消/重做管理,我正在尝试扩展组件功能。

我有一个功能,每次按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();
    }
}

我的问题是CTRL+Y输出在我的 RichTextEditor 中也是一个奇怪的字符,但我想丢弃它。

我试图放一个 event.stopImmediatePropagation(); 就在重做()之后;但无论如何,奇怪的字符都会附加到我的 RichTextEditor 中。

我真的不知道如何摆脱它。

任何想法?

4

1 回答 1

1

您可以使用以下代码:

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();
}

RichTextEditor 封装并使用 TextArea。您可以为 TextEvent.TEXT_INPUT 添加事件以防止CTRL+V事件。

于 2012-09-20T09:23:22.060 回答