在Actionscript 3项目中嵌入字体



我试图在Flash Builder 4.5中嵌入一个字体到我的Actionscript 3项目。我找到了几个例子和修复,但没有一个有我的问题。我的嵌入式字体出现在enumeratedFonts列表中,我没有得到任何错误,但当我在TextFormat中使用它时,它只是回落到系统默认字体。我已经尝试使用几个嵌入()属性和编译器参数从这篇文章:http://divillysausages.com/blog/as3_font_embedding_masterclass

package {
import flash.display.Sprite;
import fl.text.TLFTextField;
import flash.text.TextFieldAutoSize;
import flash.text.Font;
import flash.text.TextFormat;
import flashx.textLayout.elements.*;
import flashx.textLayout.formats.*;
public class FontTest extends Sprite {
    [Embed(source="assets/Nanami.otf", fontName="NanamiRegular", embedAsCFF= "false")]
    private var myEmbeddedFont:Class;
    public function FontTest() {
        var fonts:Array = Font.enumerateFonts(false);
        for(var i:int = 0; i < fonts.length; i++) {
            trace(fonts[i].fontName);
        }
        var fmt:TextFormat = new TextFormat();
        fmt.color = 0xFF0000;
        fmt.font = "NanamiRegular";
        fmt.size = 32;
        var tlfTxt:TLFTextField = new TLFTextField();
        tlfTxt.defaultTextFormat = fmt;
        tlfTxt.embedFonts = true;
        tlfTxt.border = true;
        tlfTxt.text = "Lorem ipsum dolor sit amet.";
        tlfTxt.wordWrap = true;
        tlfTxt.width = 300;
        tlfTxt.autoSize = TextFieldAutoSize.LEFT;
        tlfTxt.x = tlfTxt.y = 40;
        tlfTxt.rotation = 20;
        addChild(tlfTxt);
    }
}

}

能否尝试将fontName更改为其他内容,如"testfontname"并提供一个字体族,如"testfontfamily"

[Embed(source="assets/Nanami.otf", fontName="testfontname", fontFamily="testfontfamily" embedAsCFF= "false")]

然后嵌入该名称:

fmt.font = "testfontname";

如果你使用的是TLFTextField,你必须改变"embedAsCFF"值为true,因为TLFText使用新的Flash文本引擎。

最新更新