SimSun や Calibri などの異なるシステム フォントをさまざまな文字セットに適用する必要があります
。 SimSunでは醜い。そして、アプリケーションを両方の言語できれいに表示したいと考えています。それで、私がそれを理解する方法を知っている人はいますか?
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
割り当てることができます。どちらも機能するはずです。style
Label
TextField
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 に答える