AS3中使用嵌入字体

来源:互联网 发布:电视看最新电影软件 编辑:程序博客网 时间:2024/06/05 16:40


思路:

1.       建立一个嵌入有字体的swf文件。

2.       在别的swf文件中加载这个嵌有字体的swf文件

 

具体方法如下:

 

1.       新建一Fla文件,保存为shuibo.fla,打开库面板(空库),点击右上角的三角形图标,找到“新建字形……”输入字体名称,例如:Shuibo,在“字体”一栏选择你要嵌入的字体(中英文皆可),例如我选择:汉仪水波体简,然后点击“确定”。

2.       找到库中的字形,名称为“Shuibo”,右键选择“链接……”,在出现的对话框中勾选“为actionscript导出”,此时可以看到基类自动填入了Flash.text.Font类,再在“类”一栏填入类的名称,例如:Shuibo,点击确定退出对话框

3.       在场景的第一帧上注册此字体,代码如下:

import flash.text.Font;

Font.registerFont(Shuibo);

4.       ctrl+Enter导出文件。由于嵌入了中文的字体,导出文件shuibo.swf可能有点慢,导出的swf文件可能也比较大。

 

这样就建立了一个嵌入水波体字体的swf文件,接下来就是要在别的swf中导入这个文件进行使用了。主要代码如下:

 

                     testText = new TextField();

                     addChild(testText);

                     testText.y = 50;

                     testText.x = 50;

                     testText.autoSize = TextFieldAutoSize.LEFT;

                     testText.embedFonts = true;

                     tf = new TextFormat();

                     tf.size = 30;

                    

                     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);

              }

总结:

1.       testTextembedFonts属性为false时,嵌入的中文字体不起作用。

2.       Font.enumerateFonts(false)返回的是嵌入字体的所有实例。

3.       shuibo.swf文件必须与主swf文件处于同一目录。


原创粉丝点击