2011-12-21 6 views
1

これは、そこにあるすべてのTextFieldウィザード用です。テキストの2段落を表示するテキストフィールドがあります。最初のものは、最大3行のテキストしか表示されないように切り捨てたいものです。 2番目の段落は、そのテキストに追加されます。テキスト部分に必要な行数を検出します。

最初の段落の最初の3行だけを表示する方法はありますか?それを最初の段落の記事の要約のように考えてください。

私はString.subStr(0、charsの3行のguestimate)でそれをやってみましたが、いくつかの文字列がテキストフィールドの4行を占めるという点でかなり矛盾しています。

私は2つの別個のテキストフィールドを作成することを考えましたが、1行分の文字列しか持たない最初の段落の場合、第2段落の間に2行分の文字列のギャップがあります。

答えて

2

TextField#getLineOffset()をご覧ください。指定された行の最初の文字の文字インデックスを返します。それに応じて、substrまたはsubstringを使用してテキストを切り捨てることができます。

3
textField = new TextField(); 
textField.antiAliasType = AntiAliasType.ADVANCED; 
textField.width = _boundaryWidth; 
textField.autoSize = TextFieldAutoSize.NONE; 
textField.multiline = true; 
textField.wordWrap = true; 
textField.text = _text; 
textField.setTextFormat(textFormat); 
while(textField.numLines > 3) 
{ 
    var txt:String = textField.getLineText(textField.numLines - 1); 
    textField.replaceText(textField.text.length - txt.length,textField.text.length, ""); 
    var numLines:int = textField.numLines; 
} 

このコードは、あなたが探しているものを実行する必要があります。

あなたがする必要があるのは、テキストがカバーしている行の数を確認することだけです。最初に幅を設定するのは、テキストフィールドが広がる必要がある行数を決定するのに役立つからです。私はこれをすべて網羅する関数を作成していません。しかし、私は、関数本体全体がここにあるので、それはかなりシンプルにすべきだと思います。

+0

var 'numLines'が役に立たなくても、シンプルで良いコードです。 – helloflash

関連する問題