[ActionScript 3.0] 嵌入字体

首先我们要生成一个swf的字体库,以微软雅黑为例,新建YaHei_font.fla,ctrl+L,在库面板中右键→新建字型,弹出字体元件属性窗口,选择要嵌入的字体, 并选择为ActionScript 导出. 填入自己的类名

 

然后点击确定,在fla第一帧上输入Font.registerFont(YaHei_font),注册全局字体,发布YaHei_font.fla,至此生成的YaHei_font.swf就是我们稍后需要嵌入的字体库了;

下面是如何运用刚才的字体库嵌入微软雅黑字体,新建test.fla,因代码较少,直接写在第一帧上了:

 1 var ldr:Loader = new Loader  ;
 2 ldr.load(new URLRequest("YaHei_font.swf"));
 3 ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onFontsLoaded);
 4 function onFontsLoaded(e:Event):void
 5 {
 6     //获取嵌入的字体数组
 7     var a = Font.enumerateFonts();
 8     //trace(a);
 9     trace(a[0].fontName);
10     var tf:TextFormat = new TextFormat(a[0].fontName,16,0x333333,true);
11     var t:TextField = new TextField  ;
12     t.defaultTextFormat = tf;
13     t.embedFonts = true;//允许嵌入字体
14     t.autoSize = flash.text.TextFieldAutoSize.LEFT;
15     t.text = "嵌入微软雅黑字体";
16     t.x = t.y = 100;
17     this.addChild(t);
18 }

 

代码中Font.enumerateFonts()表示嵌入字体的数组,即可以嵌入多种字体,并按先后顺序存放在此数组中,a[0].fontName表示嵌入字体名称。

posted on 2015-06-01 16:02  晏过留痕  阅读(618)  评论(0编辑  收藏  举报