Flash精简字体打包成SWF

来源:互联网 时间:1970-01-01

Flash精简字体打包成SWF

 
  • 作者: 知明所以 • Milo
  • 博客: http://www.cnblogs.com/jhzhu 
  • 邮箱: [email protected] 
  • 日期: 2013年5月23日
 

1. 背景介绍

现在网页游戏如日中天, 对 Flash 游戏的效果要求越来越高. 合适, 多样的字体, 不仅让游戏中枯燥的文字变得更有亲和力,  更让条理变得明晰, 有更强的引导性. 但是多种字体的嵌入会大大增加 下载量, 对游戏的体验就是一个沉重打打击. 有没有那么一个方法, 能扬长避短呢? 回答当然是肯定的: 技术男拯救世界嘛...

简单的说就是: 把所有用到的汉字的字形信息打包到一个 SWF 中去, 用不到的字不打包. 这样, 就大大减小了加载量.  

2. 环境准备

a. Windows 98+ b. Adobe Air 3.0+ c. Flash Builder 4.0+

3. Unicode 编码范围获取


通过查阅 unicode 字符对照表

East Asian Scripts

Bopomofo

Bopomofo Extended

CJK Unified Ideographs (Han) (35MB)

CJK Extension-A (6MB)

CJK Extension B (40MB)

CJK Extension C (3MB)

CJK Extension D

(see also Unihan Database)

CJK Compatibility Ideographs (.5MB)

CJK Compatibility Ideographs Supplement

CJK Radicals / KangXi Radicals

CJK Radicals Supplement

CJK Strokes

Ideographic Description Characters

Hangul Jamo

Hangul Jamo Extended-A

Hangul Jamo Extended-B

Hangul Compatibility Jamo

Halfwidth Jamo

Hangul Syllables (.7MB)

Hiragana

Katakana

Katakana Phonetic Extensions

Kana Supplement

Halfwidth Katakana

Kanbun

Lisu

Miao

Yi

Yi Syllables (.5MB)

Yi Radicals

这是 Unicolde 官方网站上, 亚洲语言的编码分布. 其中汉语部分, 就是上面的 CJK Unified Ideographs(han), 其编码范围是 4E00-9FCF. 其它基本用不到.    
4. Flash SDK 中的字体工具 flex-fontkit.jar   搬运 Adobe 官方文档( 点击访问 ):
The fontswf utility is a simple command line tool that converts a single font face from a font file into a SWF file. This SWF file can be used as the source of an embedded font in your applications. Supported font file types are *.ttf, *.otf, *.ttc, and *.dfont.

-a, -alias name

Sets the font’s alias. The default is the font’s family name.

-b, -bold

Embeds the font’s bold face.

-i, -italic

Embeds the font’s italic face.

-o, -output file_path

Sets the output file path for the SWF file.

-u, -unicode-range range

Sets the included character range.

The default value is “*”, which includes all characters.

For information on using character ranges, see Setting character ranges.

-3

Generates a font SWF file for applications that use TextField-based text rendering. Use this option if you are creating a font SWF file for a Flex 3 application.

-4

Generates a font SWF file for applications that support CFF (Flex 4) with Flash Player 10.

This is the default option.

Option

Description

  这个工具基本满足了我们所有的要求. But, 必须要加一个but, 当我们挑选出来的汉字太多的时候, ”设定 –u 参数”就成了一个非常繁琐的事情. 本博客中的工具的本质上就是”把包含咱们需要的汉字的txt文件转换成 –u 参数”, 方便咱们即使增删字体.         5. 我们的工具 - FontCreater   FontCreater 基本没做什么有创意的事情, 主要功能已在上面说明了. 再啰嗦一次: 本博客中的工具的本质上就是”把包含咱们需要的汉字的txt文件转换成 –u 参数”, 方便咱们即使增删字体.   点击可下载工具 FontCreater. FontCreater.jar 现成工具包 ( 推荐 ) FontCreater 源码      

5.1 FontCreater 使用

 
5.1.1 配置文件方式:

下载后解压可看到 config.properties.

设置配置文件 config.properties:
打开 config.properties 文件. 每个设置选项都有说明.

 

命令行运行方式:

FontCreater.jar config.properties

 

config.properties 文件说明:

#字体文件目录# 命令行参数 -f(font)fontfile =C:/Users/efen/Adobe Flash Builder 4.5/TestUIEditedTool/output/assets/font/HelveticaBold.ttf#生成的字体文件名( 在 AS3 中设置 fontFamily 就用这个名称 )# 命令行参数 -n(name)fontname =huakang#所有需要的字体文本( 比如你只需要 "你我他" 三个汉字, 就在 char.txt 中添加这三个字. 然后生成的 swf 字体文件就会有这个三个字的字形 )# 命令行参数 -c(char)characterfile =./char.txt#输出字体文件目录# 命令行参数 -ooutputSwf=./huakang.swf#需要选取的 字符编码范围# 命令行参数 -r(range)codeRange=0-65535
 
5.1.2 运行参数方式:

 

命令行运行方式:

FontCreater.jar -o outputswfurl -c character.txt -f xxx.ttf -n fontname [-r characterRangeStr]

 

命令行参数说明:

-o 输出字体文件 XXX.swf -c(char) 所有需要的字体文本( 比如你只需要 "你我他" 三个汉字, 就在 char.txt 中添加这三个字. 然后生成的 swf 字体文件就会有这个三个字的字形 -f(font) 字体文件url -n(name) 生成的字体文件名( 在 AS3 中设置 fontFamily 就用这个名称 ) -r(range) 需要选取的 字符编码范围( 0-65535 )
       

5.2 下载链接:

FontCreater.jar 现成工具包 ( 推荐 ) FontCreater 源码  


相关阅读:
Top