[ActionScript 3.0] 嵌入字体

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

 [ActionScript 3.0] 嵌入字体

然后点击确定,在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表示嵌入字体名称。

你可能感兴趣的:(actionscript)