解决flex嵌入字体导致文件过大的有关问题[转载]

解决flex嵌入字体导致文件过大的问题[转载]
众所周知,Flex嵌入字体是个非常让人头疼的东东,尤其是中文,因为一个字库涵盖的字较为全面的话起码得10+MB,小的也得有3+MB(哎,英文就26个字母,只有这个时候我才感到英文的好处),我们有时候需要一些漂亮的字体,可是又用不到那么多字,这样嵌入字体会使swf文件变得异常庞大,怎么办咧?
嵌入字体大家应该都晓得,就是用Embed
具体这么做
[Embed(systemFont="迷你繁赵楷", fontName="testFont", mimeType="application/x-font")]
private myFont:class;
这样我们就可以使用嵌入的字体了,可以设定fontFamily="testFont"。
当然,这样的话是嵌入整个字库。
如果只需要嵌入某几个字的话,可以这么做
[Embed(systemFont="迷你繁赵楷", fontName="testFont", mimeType="application/x-font",
unicodeRange="U+4E2D-U+6587 " )]
private myFont:class;
unicodeRange的意思就是嵌入某个字的unicode编码至另一个字的unicode编码范围内的文字。
中文可能不太好找顺序,所以就辛苦一下一个个找吧。
上哪里找某个字的unicdoe码呢?
Here:Unicode convert v6
http://rishida.net/tools/conversion/



在Characters里面输入你要找的文字,然后点convert
下面就会出来文字的unicode码了,假如只需要这两个字 "中文"
我们就这么写

[Embed(systemFont="迷你繁赵楷", fontName="testFont", mimeType="application/x-font",
unicodeRange="U+4E2D-U+4E2D,U+6587-U+6587" )]
private myFont:class;
然后设置组件的fontFamily="testFont"就OK啦。
文字量很大的话不建议这么搞了,用于一些有个性的按钮还是很不错的,我还不知道有没有更简洁的方法,文字量很大的话只能慢慢找Unicode码了,当然可以自己写个小程序来自动把查到的每个文字的unicode码解析成“U+4E2D-U+4E2D,”这种形式然后直接复制给unicodeRange。

另外,没有被嵌入的字在使用这个字体的时候是不会被显示的。
还是汉字看着舒服。