这个适用于所有TextField向导。我有一个显示2段文本的文本字段。我希望被截断的第一个最多显示3行文本。第2段将附在该文本之后。
有没有办法只显示第一段的前3行?可以把它想象成第一段文章的摘要。
我尝试使用String.subStr(0,猜测3行字符),但是它很不一致,因为某些字符串会占用文本字段的4行。
我考虑过做两个单独的文本字段,但是在第一段只有1行字符的情况下,第二段之间会有2行字符间隔。
答案 0 :(得分: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;
}
这段代码应该可以满足您的需求。
您需要做的就是检查文本覆盖的行数。最初设置宽度是因为这有助于文本字段决定需要分散的行数。我还没有创建一个包含所有这些的功能。但我想这应该很简单,因为整个函数体都在这里。
答案 1 :(得分:2)
看看TextField#getLineOffset()。它将返回指定行上第一个字符的字符索引 - 您可以使用substr或substring相应地截断文本。