加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解决flex嵌入字体导致文件过大的问题

发布时间:2020-12-15 05:15:34 所属栏目:百科 来源:网络整理
导读:众所周知,Flex嵌入字体是个非常让人头疼的东东,尤其是中文,因为一个字库涵盖的字较为全面的话起码得10+MB,小的也得有3+MB(哎,英文就26个字母,只有这个时候我才感到英文的好处),我们有时候需要一些漂亮的字体,可是又用不到那么多字,这样嵌入字体会

众所周知,Flex嵌入字体是个非常让人头疼的东东,尤其是中文,因为一个字库涵盖的字较为全面的话起码得10+MB,小的也得有3+MB(哎,英文就26个字母,只有这个时候我才感到英文的好处),我们有时候需要一些漂亮的字体,可是又用不到那么多字,这样嵌入字体会使swf文件变得异常庞大,怎么办咧?
嵌入字体大家应该都晓得,就是用Embed
具体这么做

[Embed(systemFont="迷你繁赵楷",fontName="testFont",mimeType="application/x-font")] private myFont:class; 


这样我们就可以使用嵌入的字体了,可以设定fontFamily="testFont"。
当然,这样的话是嵌入整个字库。
如果只需要嵌入某几个字的话,可以这么做

[Embed(systemFont="迷你繁赵楷",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="迷你繁赵楷",unicodeRange="U+4E2D-U+4E2D,U+6587-U+6587" )] private myFont:class; 


然后设置组件的fontFamily="testFont"就OK啦。
文字量很大的话不建议这么搞了,用于一些有个性的按钮还是很不错的,我还不知道有没有更简洁的方法,文字量很大的话只能慢慢找Unicode码了

,当然可以自己写个小程序来自动把查到的每个文字的unicode码解析成“U+4E2D-U+4E2D,”这种形式然后直接复制给unicodeRange。 另外,没有被嵌入的字在使用这个字体的时候是不会被显示的。 还是汉字看着舒服

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读