H:\360云盘\FLA\AS3学习实例大全\TEXT文本 String Html Css\000如何嵌入字体
不使用 设备字体,选择其他类型
选择嵌入,选择简体中文,标点,数字,大写,小写
属性栏显示正常(不是显示系统默认字体),库里有对应字体,即成功
AS3嵌入
新建一Fla文件,保存为shuibo.fla,打开库面板(空库),点击右上角的三角形图标,找到“新建字形……”输入字体名称,例如:Shuibo,在“字体”一栏选择你要嵌入的字体(中英文皆可),例如我选择:汉仪水波体简,然后点击“确定”。
找到库中的字形,名称为“Shuibo”,右键选择“链接……”,在出现的对话框中勾选“为actionscript导出”,此时可以看到基类自动填入了Flash.text.Font类,再在“类”一栏填入类的名称,例如:Shuibo,点击确定退出对话框
在场景的第一帧上注册此字体,代码如下:
import flash.text.Font;
Font.registerFont(Shuibo);
按ctrl+Enter导出文件。由于嵌入了中文的字体,导出文件shuibo.swf可能有点慢,导出的swf文件可能也比较大。
这样就建立了一个嵌入水波体字体的swf文件,接下来就是要在别的swf中导入这个文件进行使用了。主要代码如下:
var testText = new TextField();
addChild(testText);
testText.y = 50;
testText.x = 50;
testText.autoSize = TextFieldAutoSize.LEFT;
testText.embedFonts = true;
var tf = new TextFormat();
tf.size = 30;
var loader = new Loader();
var route:URLRequest = new URLRequest("shuibo.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(route);
function onComplete(e:Event):void
{
var fontArray:Array = Font.enumerateFonts(false);
testText.text = fontArray[0].fontName;
tf.font = fontArray[0].fontName;
testText.setTextFormat(tf);
}
总结:
当testText的embedFonts属性为false时,嵌入的中文字体不起作用。
Font.enumerateFonts(false)返回的是嵌入字体的所有实例。
shuibo.swf文件必须与主swf文件处于同一目录。