Flex字体篇——动态嵌入字体(按需嵌入)

接上篇:Flex字体篇——动态嵌入字体

按需嵌入

中文字体小的几M,大的十几M,如果把整个中文字体都嵌入到swf会使容量增大,不利于网络传输,这时应该采取按需嵌入的办法,只把使用到的字符才嵌入到字体swf里。

按需嵌入的字体样式

需要编译的css文件:wb_fz22.css

/* Generate by wizBuilder CS */

/* Text:1608 Char:62 */

@font-face {

src:local("方正黑体简体");

fontFamily: WB-方正黑体简体;

fontStyle: normal;

fontWeight: normal;

advancedAntiAliasing: true;

unicodeRange:

U+65B9,U+6B63,U+9ED1,U+4F53,U+7B80,U+000A,U+003C,U+0046,U+004F,U+004E,U+0054,U+0020,U+004B,U+0045,

U+0052,U+0049,U+0047,U+003D,U+0022,U+0031,U+003E,U+002F,U+8BF7,U+53CC,U+51FB,U+8FD9,U+91CC,U+7F16,U+8F91,

U+6587,U+672C,U+002E,U+0050,U+0032,U+0033,U+0034,U+0035,U+0036,U+0037,U+0038,U+0039,U+0030,U+5E72,U+9898,

U+000D,U+786E,U+9009,U+9879,U+9519,U+8BEF,U+5355,U+0074,U+0072,U+0075,U+0065,U+0066,U+0061,U+006C,U+0073,

U+0078,U+65C1,U+767D;

}

该css文件是外部exe自动生成,并且自动进行编译生成字体swf的,其中U+****的代码是使用到的unicode字符。

C#中生成上述unicode字符的主要代码如下:

private static string ToUnicode(char value)

{

byte[] bytes = Encoding.Unicode.GetBytes(value.ToString());

return "U+" + bytes[1].ToString("X2") + bytes[0].ToString("X2");

}

如何让外部exe自动编译css生成swf参考上篇方法使用命令行。

何时才按需嵌入字体

在设计阶段,用户输入是不确定的,应该把整个字库嵌入到编辑环境满足用户的编辑需要。

在发布后浏览阶段,这时用户的输入已经确定,应该只嵌入所需的字符。

整个字库嵌入和按需嵌入的比较

整个字库嵌入的容量

按需嵌入的容量(根据使用的字符数量变化)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值