Flash汉字嵌入助手(HanFont)是一款制作Flash运行时共享字库的工具。特别针对Flash汉字的嵌入需求进行开发,简化了烦琐的生产过程,自动生成as文件甚至是最终的swf文件,让没有开发经验的人员也能够轻松使用。
简单来说可以靠这个小工具将一般字型转换为上古卷轴5使用的SWF字库!不需要再安装Adobe Flex Builder!
![Flash汉字嵌入助手(HanFont)](https://img-oss.wdhdown.com/up/20221102/201333551624435049_600_0.jpg)
一、简易製作
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这类常编译失败的字型,若先安装到电脑中再从系统字型选毕后编译通常会成功。
嵌入文字范围
预设是全部,若只选择汉字那麼编译出来的字库只含中文字元,若游戏中出现了英数字元就会显示口口,故一般不需设定。
※ 若使用大学汉化版,则要多编译一份粗体样式的SWF字库,不然手写书信类物品会显示口口
二、进阶编译
若想要将两种、三种以上的字型全包在一个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字型。