0

SimSun や Calibri などの異なるシステム フォントをさまざまな文字セットに適用する必要があります
。 SimSunでは醜い。そして、アプリケーションを両方の言語できれいに表示したいと考えています。それで、私がそれを理解する方法を知っている人はいますか?

4

2 に答える 2

1

1つの方法は、現在のロケール(必要な文字セットを決定する)に基づいて、CSSスタイルを使用してさまざまな埋め込みフォントを動的にロードすることです。

まず、埋め込みフォントを作成します。

English.css

@font-face {
        fontFamily: Calibri;
        fontStyle: normal;
        fontWeight: normal;
        ...
}

Application
{
        font-family: Calibri;
}

Other.css

@font-face {
    font-family:SimSun;
    ... 
}

Application {
    font-family: SimSun
}

次に、ロケールに基づいて、ロードするファイルを選択します。CSSは、フォントがアプリケーション全体に適用されるように宣言されているため、これを行う必要があるのは、おそらくアプリケーションの1か所だけですpreInitialize

Application.mxml

loadLocaleFont() {
    var cssFileToLoad = getLocaleCssFile();
    var styleEvent:IEventDispatcher = StyleManager.loadStyleDeclarations(cssFileToLoad);
}
于 2013-01-16T21:19:16.410 に答える
0

カスタムFontManagement クラスにスイッチを実装できます。ある言語がメイン フォントでサポートされていない場合は、別のフォントに戻すか、システム フォント (クライアントのデフォルト) を使用します。LabelまたはTextFieldオブジェクトをフォーマットする集中ポイントとしてクラスを使用します。

必要に応じて、CSS 内にフォントを埋め込んで、またはオブジェクトに名前をclass割り当てることができます。どちらも機能するはずです。styleLabelTextField

var params:Object = {color:0xffffff , size:12, supported:false , etc...};
var tf:TextField= FontManagement.formatTextField(tf , params );

public class FontManagement
{
    public static function formatTextField( textfield:TextField , params:Object ):TextField
    {
        if( params.supported )
           tf.embedFonts = true;
        else
           tf.embedFonts = false;

        return textfield;
    }
}
于 2013-01-16T13:05:25.977 に答える