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埋め込みフォントを処理できるテキストフィールドを使用するように強制されます。また、同じフォントを2回埋め込む必要がないという利点もあります。

于 2012-06-29T22:24:31.220 に答える