貘良了 发表于 2009-12-7 09:12:55

AS3使用中文字体嵌入

新建一个Flash,命名为fontLibrary,在第一帧写上下面代码




var MyClass : Class;

Font.registerFont(MyClass);

然后CTRL+Enter生成swf

要调用就再新建另一个Flash,代码如下:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest("fontLibrary.swf"));

function completeHandler(event : Event):void {
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
    var fmt:TextFormat=new TextFormat("MyFont",25,0x336699);
    var txt : TextField = new TextField();
    txt.autoSize=TextFieldAutoSize.LEFT;
    txt.embedFonts=true;
    txt.text="中文字体在中文输入法中测试";
    txt.setTextFormat(fmt);
    addChild(txt);
}

貘良了 发表于 2009-12-7 09:16:27

说明:DFPShaoNvW5-GB.ttf是在跟swf同一目录下的字体文件名字。

我这里用的是“华康少女字体”

unicodeRange=后面跟随的一堆U+XXXX是常用汉字的unicode编码。

本人经整理,把汉字+数字+常用标点符号都放进去了。

貘良了 发表于 2009-12-7 09:23:15

如果要用类的方式,请参照下面的写法。
package {
    import flash.display.Sprite;
    import flash.text.Font;

    public class FontLibrary extends Sprite {
      
      static public var MyClass : Class;

      public function FontLibrary() {
            Font.registerFont(MyClass);
      }
    }
}

貘良了 发表于 2009-12-7 09:30:31

附件是用变量的写法,就是在时间轴第一帧写下一堆UNICODE而不是写AS类

仅供参考。

UNICOE查询:http://rishida.net/scripts/uniview/conversion
中文字体嵌入助手:http://kevincao.com/app/font/

franniss 发表于 2009-12-7 15:50:03

辛苦了 这是必要物~

貘良了 发表于 2009-12-7 23:52:06

引用第4楼franniss于2009-12-07 15:50发表的:
辛苦了 这是必要物~
看来要自己加精华才行,我自己也花了好长时间去翻UNICODE,最可恶和无奈的是,Flash CS4经常崩溃。

顺便贴一下老外的视频教程。有不明白的话请看。
http://www.scile.cn/lab/videos/runtimefonts.mov
页: [1]
查看完整版本: AS3使用中文字体嵌入