Apache flex 当文本框的文本变大时进行调整…使其变小

Apache flex 当文本框的文本变大时进行调整…使其变小,apache-flex,Apache Flex,我有一个标签,它有一个设置的宽度,通常足够大,可以显示需要显示的文本。每隔一段时间,尽管文本有点太长,会被切掉,“…”会被追加。而不是发生这种情况,我想减少字体大小只是足够低,以显示整个文本 有人知道这样做的好方法吗 谢谢字体是一种复杂的野兽。对于给定的文本,您可以使用以下近似公式找到字符串长度并计算允许的最大字体大小: var max_allowable_size:int = yourLabel.width / yourLabel.text.length; 这可能会导致某些字体出现严重问题,

我有一个标签,它有一个设置的宽度,通常足够大,可以显示需要显示的文本。每隔一段时间,尽管文本有点太长,会被切掉,“…”会被追加。而不是发生这种情况,我想减少字体大小只是足够低,以显示整个文本

有人知道这样做的好方法吗


谢谢

字体是一种复杂的野兽。对于给定的文本,您可以使用以下近似公式找到字符串长度并计算允许的最大字体大小:

var max_allowable_size:int = yourLabel.width / yourLabel.text.length;
这可能会导致某些字体出现严重问题,即:

  • 请记住,并非所有字体都是相同的,也就是说,它们的大小不可能完全一致
  • 抗锯齿可能会中断
  • 字体可能不好看/文字可能难以辨认
  • 当应用于非罗马字符时,上述简单公式可能会失效
  • 而且,这是一种低效的方法
我建议您定义两种不同的样式,一种是常规样式,另一种是备用样式,字体大小设置为最小,当遇到较长的标签文本时,您可以切换到最小的样式。您可以使用上述公式中的默认字体大小来计算要切换的阈值限制。当然,如果您必须支持本地化/多种语言,则需要进行一些实验


最后,如果要使用最常用字体以外的任何字体,请始终嵌入字体。

有一个measureText函数。退房:

您可能可以使用measureText并减小字体大小,直到合适为止