【问题标题】:Small text in spark label looks bloor火花标签中的小文本看起来很臃肿
【发布时间】:2015-06-29 06:45:19
【问题描述】:

我花了几天时间寻找解决这个问题的方法。在使用 spark 标签之前,我使用 mx 标签,并且小尺寸(textSize:11)的文本看起来清晰。更改火花标签上的组件后,文本看起来模糊,不太清晰。我从我的系统嵌入字体。字体名称是 Tahoma。改变像 cffHinting 这样的值不会给我任何结果。我正在使用 flashDevelop,但在 IDEA 和 FlashBuilder 中的结果相同。我不能发布我的小声誉级别的屏幕截图。请帮助我找到正确的解决方案。

@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@font-face{
    src:url("Tahoma.ttf");
    font-family:TahomaS;
    embedAsCFF: true;
}

@font-face{
    src:url("Tahoma.ttf");
    font-family:TahomaMX;
    embedAsCFF: false;
}

s|Label
{
    font-family:TahomaS;
    font-size:11;
    color: #5c5c5c;
}

mx|Label
{
    font-family:TahomaMX;
    font-size:11;
    color: #5c5c5c;
}

以及来自 Main.mxml 的代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">

   <fx:Style source="Fonts.css"/>

   <s:Label x="50" y="50" text="XYZ Corporation Directory" cffHinting="none" />
   <mx:Label x="50" y="65" text="XYZ Corporation Directory" />

</s:Application>

【问题讨论】:

    标签: apache-flex flex-spark


    【解决方案1】:

    我认为模糊效果和大小标签文本的变化是因为你的 flex 编译器找不到指定的字体,所以它使用默认字体。

    1 - 使用 local() 来定位本地字体,如下所示:

       @font-face {
            src: local("Tahoma");
            fontFamily: "TahomaS";
            embedAsCFF: true;
        }
    
        s|Label {
            fontFamily: "TahomaS";
            fontSize: 44;
        }
    

    2 - 在您的 src/ 文件夹中创建一个 flex 配置文件 local-font-config.xml 并指定您的字体路径:

    <?xml version="1.0" encoding="utf-8"?>
    <flex-config>
        <compiler>
            <fonts>
                <local-font-paths>
                    <path-element>/System/Library/Fonts/</path-element>
                </local-font-paths>
            </fonts>
        </compiler>
    </flex-config>
    

    3- 将配置文件的位置提供给您的 flex 编译器:

    -load-config+=local-font-config.xml
    

    ...我认为使用字体最好的方法是把它作为项目资源使用,这样就可以避免额外的配置 只需在您的项目中创建一个 src/assets/fonts 文件夹并放入您的字体

    在你的 css 文件中这样做:

      @font-face {
            src:url("assets/fonts/Tahoma.ttf");
            fontFamily: "TahomaS";
            embedAsCFF: true;
         }
    
      s|Label {
            fontFamily: "TahomaS";
            fontSize: 44;
         }
    

    【讨论】:

    • 非常感谢@Jileni Bouguima 的回答! “......我认为使用字体的最佳方法是将其用作项目资源,因此您可以避免额外的配置只需在您的项目中创建一个 src/assets/fonts 文件夹并放入您的字体和您的 css 文件” --- 是的,我使用来自项目资源的字体。我认为我对问题目标的解释信息量不足。所有字体都完美加载,我可以根据需要使用它。但我使用的是小文本尺寸,而且只有从 14 像素及以下,spark 标签 中的字符视图看起来很模糊。
    • 尝试使用:fontLookup="embeddedCFF" 和 renderingMode="cff",如果这不能改善文本的呈现,请更改其他字体。 spark label 使用 FTE(Flash Text Engine) 比 mx label 使用的 TextField 类更强大的新文本引擎
    • 不,更改 fontLookup 和 renderMode 不会产生任何效果...我只是尝试找到另一种字体,具有类似的 Tahoma 字体视图。谢谢你的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2014-12-30
    • 2012-02-17
    • 2015-03-17
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    相关资源
    最近更新 更多