Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 是否可以为不同的字符集应用不同的非嵌入字体?_Apache Flex_Localization_Fonts_Flex4 - Fatal编程技术网

Apache flex 是否可以为不同的字符集应用不同的非嵌入字体?

Apache flex 是否可以为不同的字符集应用不同的非嵌入字体?,apache-flex,localization,fonts,flex4,Apache Flex,Localization,Fonts,Flex4,我需要为不同的字符集应用不同的系统字体,如SimSun和Calibri,例如,A、B、C。。。及承, 認 ... 我有这个问题,因为象形文字在Calibri里是不可读的,但英文字母在SimSun里看起来很难看。我希望我的应用程序在两种语言中看起来都很漂亮。那么有人知道我是如何解决这个问题的吗?您可以在自定义的FontManagement类中实现一个开关。如果主字体不支持某种语言,请还原为其他字体或使用系统字体(客户端默认)。将类用作设置标签或文本字段对象格式的集中点 或者,您可以尝试将字体嵌入c

我需要为不同的字符集应用不同的系统字体,如SimSun和Calibri,例如,A、B、C。。。及承, 認 ...

我有这个问题,因为象形文字在Calibri里是不可读的,但英文字母在SimSun里看起来很难看。我希望我的应用程序在两种语言中看起来都很漂亮。那么有人知道我是如何解决这个问题的吗?

您可以在自定义的FontManagement类中实现一个开关。如果主字体不支持某种语言,请还原为其他字体或使用系统字体(客户端默认)。将类用作设置
标签
文本字段
对象格式的集中点

或者,您可以尝试将字体嵌入css
中,并将
样式
名称指定给
标签
文本字段
对象。两者都应该起作用

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;
    }
}

一种方法是根据当前语言环境(这将决定需要哪些字符集)动态加载不同的嵌入字体和CSS样式

首先创建嵌入式字体

English.css

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

Application
{
        font-family: Calibri;
}
其他.css

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

Application {
    font-family: SimSun
}
然后根据您的区域设置,选择要加载的文件。声明CSS是为了将字体应用于整个应用程序,因此您只需要在一个位置执行此操作,可能是在应用程序
预初始化时执行

Application.mxml

loadLocaleFont() {
    var cssFileToLoad = getLocaleCssFile();
    var styleEvent:IEventDispatcher = StyleManager.loadStyleDeclarations(cssFileToLoad);
}