应用介绍
HanFont是一款制作Flash运行时共享字库的工具。特别针对Flash汉字的嵌入要求进行开发,简化了烦琐的生产过程,自主生成AS文件甚至是最终的SWF文件,让没有开发经验的人员也能够轻松使用。
一、HanFont的简易制作
1. 首次执行时程式会要求载入Flex SDK的路径,选择内附的Flex 3 SDK 3.5.0.12683B,这裡用的是Flex SDK 3.5故选择Flex 3.x。万一选错了请执行目录下的清除设定.bat并重新执行程式。
2. 填入fontconfig.txt设定用到的字型名称,一般以字型原本的名称命名,完成后右下角编译。
类别名称ClassName
一种字型使用一个类别名称,程式只会编译一种,一般不要设定。
字型名称FontName
设定字型名称,一种字型使用一种名称,fontconfig.txt填入的字型名称就是在这裡设定。
系统字型
选择已安装於电脑的字型进行编译。
外部字型
选择字型档案进行编译,一般以TTF為主,像TTC这类常编译失败的字型,如果先安装到电脑中再从系统字型选毕后编译通常会成功。
嵌入文字范围
预设是全部,如果只选择汉字那么编译出来的字库只含中文字元,如果游戏中出现了英数字元就会显示口口,故一般不要设定。
二、HanFont的进阶编译
如果想要将两种、三种以上的字型全包在一个SWF裡面呢?那么就要用到Flex SDK中的mxmlc.exe萝,以命令提示字元操作。
1. 在Flash汉字嵌入助手选择保存,将内容存為as档案或用记事本编辑亦能,编码储存為UTF-8。
含两种字型样式的范例:
package {
import flash.display.Sprite;
import flash.text.Font;
public class FontLibrary extends Sprite {
[Embed(systemFont="华康中圆体", fontName="DFT_R5", fontStyle="normal", fontWeight="normal", advancedAntiAliasing="true", mimeType="application/x-font")]
static public var ClassName1 : Class;
[Embed(source="C:/王汉宗顏楷体繁.ttf", fontName="wt064", fontStyle="normal", fontWeight="normal", advancedAntiAliasing="true", mimeType="application/x-font")]
static public var mybaby520 : Class;
[Embed(systemFont="文鼎粗魏碑", fontName="WeiBei-Bold", fontStyle="normal",fontWeight="bold", advancedAntiAliasing="true", unicodeRange="U+0000-U+ffff,U+0000-U+ffFF, mimeType="application/x-font")]
static public var test : Class;
public function FontLibrary() {
Font.registerFont(ClassName1);
Font.registerFont(mybaby520);
Font.registerFont(test);
}
}
}
上面能以看出差异在哪些地方,fontWeight="bold"是粗体样式,fontname和classname只要每种字型不要用到相同的名称就行。unicodeRange是為字型指定字库范围,一般说能以不用,但是文鼎系列的字型要。advancedAntiAliasing是反锯齿,能有能无。systemFont是调用系统字型,外部字型则要改為source,双引号内填入字型路径。
2. 以mxmlc.exe编译as档案时路径含空格要加上双引号,swf字库会输出到as档案的同目录下
例:"路径\mxmlc.exe" "路径\*.as"
一般来说只要正常样式和粗体样式两种就能以打造一个字库。3dm汉化补丁的简体或简转繁字库并不要粗体样式,而以大学汉化版的fontconfig.txt為例,粗体样式的字型是这样设定:
map "$HandwrittenfontB" = "字型名称" Bold
当然除了正常的样式和粗体样式外也能以加入龙语、雪精灵语等等字型来完善该字库档案,这些游戏字型怎样取得? 透过Action Script Viewer反编译官方的font_en.swf提取出TTF字型