一直以来Flash对中文的支持就不是很好,很多人都发现很多汉字在Flex中无法设置粗体,就是其中一个表现,经过一晚上的折腾,终于突破了这个难题,其实,答案就在Adobe的官方教程里,只能怪自己英文水平太差,废话不表,直入正题,为了便于描述,以google的思源黑体为例:

第一步:将字体编译成swf文件

将自己需要的字体(常规和粗体一般是分开的两个字体文件,如果你还需要斜体和粗斜体,也可拷贝进来)拷贝到自己的程序中,我这里是将思源黑体的NotoSansHans-Regular.otf和NotoSansHans-Bold.otf拷贝到src根目录(这些在编译后就可以删掉了),然后在根目录建立syht.css,内容如下:

/* CSS file */
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx"; @font-face
{
src:url('NotoSansHans-Regular.otf');
font-family:syht;
font-weight:normal;
embed-as-cff:true;
} @font-face
{
src:url('NotoSansHans-Bold.otf');
font-family:syht;
font-weight:bold;
embed-as-cff:true;
}

然后右键:Compile CSS to SWF,编译后会在目标文件夹生成syht.swf文件,这个就是包含了思源黑体的字体文件了,然后可以删除掉字体文件和syht.css,避免项目在重编译时耗费时间.

第二步:加载字体文件

在主程序的初始化阶段加载字体文件,这里我是将syht.swf放在程序根目录.

protected function application1_initializeHandler(event:FlexEvent):void
{
FlexGlobals.topLevelApplication.styleManager.loadStyleDeclarations2("syht.swf", true);
}

上述代码中主程序在载入完成后会立即加载syht.swf字体文件

第三步:添加对EmbeddedFontRegistry的引用

在主程序中import mx.core.EmbeddedFontRegistry;

<fx:Script>
<![CDATA[
import mx.core.FlexGlobals;
import mx.events.FlexEvent;
import mx.core.EmbeddedFontRegistry;
EmbeddedFontRegistry; protected function application1_initializeHandler(event:FlexEvent):void
{
FlexGlobals.topLevelApplication.styleManager.loadStyleDeclarations2("syht.swf", true);
} ]]>
</fx:Script>

第四步:添加编译选项-theme+=frameworks\projects\spark\MXFTEText.css

如果提示找不到该文件,请直接去SDK包里对应的目录下找,并拷贝到程序中,比如拷贝到根目录,那么-theme+=MXFTEText.css即可

然后就可以设置fontFamily=syht来应用字体了,一般都是在global样式中设定默认字体,我就不写代码了.

另外,如果是Flex3,那么请忽略第四步,并且第一步的css中embed-as-cff请设置为false

Flex 中文字体终极解决方案的更多相关文章

  1. css中文字体乱码解决方案

    css中文字体乱码解决方案:把css编码和html页面编码统一起来.如果html页面是utf-8.css.js也统一成utf-8编码.还有一个避免中文乱码的办法就是把中文字体写成英文来表示 css中文 ...

  2. koala编译scss文件时不支持中文字体的解决方案

    第一种方案:在scss文件第一行加上这行代码@charset "utf-8"; 第二种方案: scss文件编译时候使用ruby环境,出现 Syntax error: Invalid ...

  3. Cygwin 各种情况下中文乱码--终极解决方案

    0.引言 本人从进公司以来一直负责公司Android平台下产品的NDK开发,用的工具: 01. Google的adt-bundle(集成了eclipse和sdk) 02. NDK 03. Cygwin ...

  4. JSPDF支持中文(思源黑体)采坑之旅,JSPDF中文字体乱码解决方案

    我拍个砖,通常标称自己文章完美解决何种问题的,往往就是解决不了任何问题! 众所周知,JSPDF是一个开源的,易用的,但是对中文支持非常差的PDF库. 下面,我教大家,如何在pdf中使用思源黑体.思源黑 ...

  5. xampp3.2下mysql中文乱码终极解决方案

    xmapp3.2.2中mysql已经被替换成了Mariadb,网上那些显示char语句已经失灵. 另外本文主要介绍的是手动在mysql中写入中文乱码问题 那么我们将采用如下三个步骤解决乱码问题 1.打 ...

  6. VIM、GVIM在WINDOWS下中文乱码的终极解决方案

    文章转自:http://www.liuhuadong.com/archives/68 vim.gvim在windows下中文乱码的终极解决方案在windows下vim的中文字体显示并不好,所以我们需要 ...

  7. 【原创】CHROME 最小字体限制为12PX的终极解决方案

    CHROME 最小字体限制为12PX的终极解决方案 本文由五月雨恋提供,转载请注明出处. 相信不少做网站的用户会有这样一个问题,Chrome 默认最小字体是12px(最新版英文也有此问题),这个是 C ...

  8. vim、gvim 在 windows 下中文乱码的终极解决方案

    vim.gvim 在 windows 下中文乱码的终极解决方案 vim ~/.vimrc 然后加入: " Gvim中文菜单乱码解决方案 " 设置文件编码格式 set encodin ...

  9. 【转】JSP中文乱码问题终极解决方案

    原文地址:http://blog.csdn.net/beijiguangyong/article/details/7414247 在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的 ...

随机推荐

  1. 剑指offer系列20--从上到下打印二叉树

    * 20 [题目]从上往下打印出二叉树的每个节点,同层节点从左至右打印. * [思路]从根结点开始,先保存结点,再看根结点的左右结点有没有值. * 有,就将左右值放到集合中: * 根节点输出后,打印根 ...

  2. Python Beautiful Soup模块的安装

    以安装Beautifulsoup4为例: 1.到网站上下载:http://www.crummy.com/software/BeautifulSoup/bs4/download/ 2.解压文件到C:\P ...

  3. RPM Fusion on CentOS7

    RPM Fusion RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. Tha ...

  4. AWS控制台改英文

    https://console.amazonaws.cn 控制台首选项->语言->英文

  5. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  6. 我们如何学好java

    转载:http://www.zhihu.com/question/19945685 马士兵有一篇文章,我觉得写得很好,原文转载如下,希望题主可以好好读读. ---------------------- ...

  7. Wordpress-数据库结构分析(转)

    之前用了一段时间的Wordpress,觉得真的是一个优秀的博客系统,而且有大量的主题和插件.是我目前用过的最棒的一个博客平台.不仅如此,Wordpress 的代码也是写得非常漂亮,很适合用来学习PHP ...

  8. Nginx_修改Web服务器头信息(Header)里的Server值[转]

    http://blog.rekfan.com/?p=122 黑客攻击一个网站,往往需要了解服务器的架构,网站的架构等信息,了解了这些信息,就知道网站薄弱的地方在哪里了!    为了不让对方知道自己的w ...

  9. bug_ _java.lang.IllegalArgumentException: View not attached to window manager

    ============= 1   view not attached to window manager 转自:http://hi.baidu.com/spare_h/blog/item/7fa3e ...

  10. JAVA算数运算符

    算数运算符 序号 算数运算符 含义用法 特殊含义用法 1 + 加法 字符串连接 2 - 减法   3 * 乘法   4 / 除法   5 % 取余   实例: public class Test{ p ...