2016-08-10 12 views
-1

これは前に尋ねられましたが、それに対して適切な答えが得られません。フレックス制限のテキストエリアの文字数

<s:TextArea fontSize="14" heightInLines="15" widthInChars="40" /> 

私は私が制限する(許可)最大15行ユーザーがそれ以上ないを入力することができますしたいテキストエリアを持っています。
私は利用可能なプロパティを見つけようとしましたが、プログラミングをしようとしましたが、私が得られないものは得られませんでした。

テキストの変更で行数を検出しようとしましたが、成功しませんでした。

var textLength:Number = event.currentTarget.text.length; //It gives length of text. 

私はまた、単一の行で最大40文字を制限したいです。その後、ユーザーがテキストを入力した後、下の行に移動します。
これは可能ですか?

ご協力いただければ幸いです。

編集:

protected function onKeyDown(event:KeyboardEvent):void 
{ 
    if(txtArea.textFlow.flowComposer.numLines > txtArea.heightInLines && event.keyCode == Keyboard.ENTER) 
    { 
     txtArea.text = txtArea.text.substr(0, txtArea.selectionActivePosition-1) + txtArea.text.substr(txtArea.selectionActivePosition, txtArea.text.length); 
    } 
} 

しかし、まだ行あたり40文字を制限することはできません。

私は道を、次のような限界線番号を持っています。特定の行の制限をどのように与えることができますか?

+0

なぜ人々が質問を下落させるのか分かりません。それは低品質ですか? – ketan

答えて

0

これは、単にカスタムロジックが既に実装されているためです。あなたはそれを自分でやる必要があります。

デフォルトの動作を防止して、あなたが望む結果にtextプロパティを設定するために必要なロジックを実行し、テキスト入力イベントのためにそのハンドラ内

input.addEventListener(TextEvent.TEXT_INPUT, onInput); 

を聞きます。あなたのケースでは

private function onInput(e:TextEvent):void 
{  
    e.preventDefault(); 

    trace("current text: " + e.target.text); 
    trace("inserted text: " + e.text); 

    // perform logic here 

    e.target.text = "result"; 
} 

、ロジックは、おそらく最大40の最大15文字のグループプラス改行にマッチする正規表現パターンに最も便利に達成されます。

+0

お返事ありがとうございます。私は現在と挿入されたテキストを得ることができるこの方法を知っています。しかし、どのように多くの文字がそこに挿入された行の合計を得ることができますか?どの列に入るかは入力してください。だから、もしそれが15以上になるのを防ぐことができます – ketan

+0

それは私の答えの最後の段落で説明しました。 – null

+0

私に例を教えてもらえますか?私はテキストを入力する現在の行を取得できません。 – ketan

関連する問題