【问题标题】:Flex when text is to big for text box...make smallerFlex 当文本对于文本框来说太大时...变小
【发布时间】:2010-10-17 20:48:10
【问题描述】:

我有一个

有谁知道这样做的好方法吗?

谢谢

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

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

    var max_allowable_size:int = yourLabel.width / yourLabel.text.length;
    

    这可能会导致某些字体出现严重问题,即:

    • 请记住,并非所有字体都是相同的,即它们不能都被优雅地调整大小。
    • 抗锯齿可能会中断
    • 字体可能不好看/文字可能难以辨认
    • 上面的简单公式在应用于非罗马字符时可能会失效
    • 另外,这是一种低效的方式。

    我宁愿建议您定义两种不同的样式,一种是常规样式,另一种是后备样式,字体大小设置为最小,当您遇到较长的标签文本时切换到该样式。您可以使用上述公式中的默认字体大小来计算切换的阈值限制。当然,如果您必须支持本地化/多语言,则需要进行一些实验。

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

    【讨论】:

      【解决方案2】:

      有一个 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 并减小字体大小直到合适为止。

      【讨论】:

        猜你喜欢
        • 2010-11-29
        • 2013-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        相关资源
        最近更新 更多