1

我的 flex (4.5) 应用程序使用 MX 和 Spark 组件。我想嵌入 Arial 字体,我很疯狂:它适用于 Spark 组件,或者适用于 MX 组件,但不能同时适用于两者。

有时某些组件会消失,或者两者都是粗体等!

<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"  layout="absolute" xmlns:s="library://ns.adobe.com/flex/spark">
<mx:Style>
    @namespace mx "library://ns.adobe.com/flex/mx";
    @namespace s "library://ns.adobe.com/flex/spark";
    @font-face { 
        src: url("c:/windows/fonts/arial.ttf"); 
        fontFamily: Arial; 
        fontWeight:normal;
        embed-as-cff: true;

    }
    @font-face {
        src: local("Arial");
        font-weight: normal;
        fontFamily: Arial;
        fontStyle:normal;
        embed-as-cff:false;         
    }
    @font-face {
        src: local("Arial");
        fontFamily: Arial;
        fontWeight:bold;
        fontStyle: normal;
        embed-as-cff:false;
    }
</mx:Style>
<mx:Label x="177" y="160" text="mx|normal"/>
<mx:Label x="177" y="201" fontWeight="bold" text="mx|bold"/>    
<s:Label x="182" y="235" text="S|normal"/>
<s:Label x="182" y="278" text="S|bold" fontWeight="bold"/>

4

1 回答 1

2

删除说:的字体样式embedAsCFF: false并添加以下内容:

mx|global {
    textFieldClass: ClassReference("mx.core.UIFTETextField");
}

这将强制所有渲染文本的 mx 组件使用可以处理 CFF 嵌入字体的文本字段。它还有一个优点是您不必两次嵌入相同的字体。

于 2012-06-29T22:24:31.220 回答