1

flex3.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+ YRichTextEditorに奇妙な文字も出力することですがそれを破棄したいと思います。

event.stopImmediatePropagation();を配置しようとしました。redo();の直後 しかし、とにかく奇妙な文字が私の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をカプセル化して使用します。CTRL+イベントを防ぐために、TextEvent.TEXT_INPUTのイベントを追加できますV

于 2012-09-20T09:23:22.060 に答える