Actionscript 3.0 TextField显示字符

时间:2010-10-27 16:29:39

标签: flash actionscript-3 textfield

我有一个单行文本字段,可以从外部.XML文件中填充其.text属性。这段文字非常长,我想尽可能多地在一行上显示它,然后添加一个“......”。

e.g。

全文= Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。

显示文字=描述:Lorem ipsum dolor sit amet,consectetur adipisicing el

我希望它如何展示=描述:Lorem ipsum dolor坐下来,精神恍惚......

我阅读了手册,但我似乎无法找到一个属性,它为我提供了指向显示文本末尾的索引。

如果您有其他想法,请告诉我。

谢谢!

4 个答案:

答案 0 :(得分:0)

查看TextLineMetrics课程的examples。这应该让你去。

答案 1 :(得分:0)

mytextfield.getLineLength(0)

应该为您提供第一行文字的长度(以字符为单位)。这应该或多或少地对应于第一行上最后显示的字符的位置。

相应地调整其他文本行。

答案 2 :(得分:0)

你不能只使用子字符串吗?

var longtext:String = "Hello my really long string.";
var summary:String = longtext.substring(0,5);
SomeText.text = summary+"..."; // Hello...  

答案 3 :(得分:0)

我总是使用.length属性。还有.setSelection,.replaceSelectedText方法,可以与.caretIndex属性一起使用。此页面也是您的朋友 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#propertySummary

我在具有特殊尺寸需求的文本字段中使用了这些。 在下面的例子中,t是我的文本域。

t.setSelection(t.length,t.length);
t.replaceSelectedText("");

您可以在replaceSelectedText方法中的引号中添加任何额外的文本。您可能需要在此之后调整caretIndex。