0

ユーザーが TextArea に改行を入力するのを止めたいだけです。TextArea の「restrict」プロパティを試してみましたが、うまくいかないようです。

次のコードがあります。

<mx:Canvas id="cvs1" label="Panel 1" width="100%" height="100%" creationComplete"addEvtListnerOnPlaceText()" backgroundColor="#FFFFFF">
    <mx:TextArea id="txtP1T1" x="10" y="176" text="{placeName}" width="210" textAlign="center" color="#DC0000" restrict="this is where I need some help"/>
</mx:Canvas>

制限プロパティがこれをカバーするかどうかはわかりませんが、助けていただければ幸いです。

私は今、何かを機能させることができました:

    private function addEvtListnerOnPlaceText():void{
        txtP1T1.addEventListener(KeyboardEvent.KEY_DOWN, onKeyEventDown);
        txtP1T1.addEventListener(KeyboardEvent.KEY_UP, onKeyEventUp);
    }

    [Bindable]
    public var tempString:String;
    private function onKeyEventDown(e:KeyboardEvent):void
    {
        var character:String = String.fromCharCode(e.charCode);

        if (e.keyCode == 13)
        {
            tempString = txtP1T1.text;
            KeyboardEvent.KEY_UP;
        }

    }
    private function onKeyEventUp(e:KeyboardEvent):void
    {
        var character:String = String.fromCharCode(e.charCode);

        if (e.keyCode == 13)
        {
            txtP1T1.text = tempString;
        }

    }

現在の唯一の問題は、リターンを押したままにすると、最初のキャリッジ リターンがクリアされ、押している限り追加し続けることです。テキスト領域へのフォーカスを失うことなく、これを止める方法が必要です。

4

1 に答える 1

2

flex3 の経験はありませんが、イベント駆動型アルゴリズムを使用するという考えに基づいた大まかな調査の後、TextEventsを使用して、入力されたテキストの改行/改行を削除してからTextArea.

KeyboardEventまたは、 sを確認することもできます。


"^\r"ただし、restrict プロパティを設定するだけでキャリッジ リターンが除外され、キャリッジ リターンのみが入力されないようになるため、restrict プロパティを使用するのが最も簡単なようです。(もちろん"^\r\n"、キャリッジ リターン、ラインフィード、およびその 2 つの組み合わせの両方から全体的な改行保護を提供するために、代わりに使用することをお勧めします。)

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/TextArea.html#restrict

于 2011-08-02T14:59:02.500 に答える