我有一个< mx:标签>具有设置宽度的标记,通常大到足以显示需要显示的文本。每隔一段时间虽然文字有点太长而被切断,“......”会被追加。而不是发生这种情况,我想减小字体大小,只显示整个文本。
有没有人知道这样做的好方法?
由于
答案 0 :(得分:1)
字体是一个复杂的野兽。对于给定的文本,您可以使用以下近似公式非常简单地找到字符串长度并计算最大允许字体大小:
var max_allowable_size:int = yourLabel.width / yourLabel.text.length;
这可能会导致某些字体出现严重问题,即:
我宁愿建议您定义两种不同的样式,一种是常规样式,另一种是字体大小设置为最小值的后备样式,当您遇到较长的标签文本时,可以切换到这种样式。您可以使用上述公式中的默认字体大小来计算要切换的阈值限制。当然,如果你必须支持本地化/多种语言,那么就要进行一些实验。
最后,如果要使用除最常见字体以外的任何其他内容,请始终嵌入字体。
答案 1 :(得分:1)
有一个measureText函数。退房:
http://frankieloscavio.blogspot.com/2008/01/flex-use-measuretexttxt-to-calculate.html http://livedocs.adobe.com/flex/3/langref/mx/core/UITextFormat.html#measureText()
你可以使用measureText并减小字体大小直到它适合。