在Actionscript 3项目中嵌入字体

时间:2013-06-20 13:49:27

标签: actionscript-3 actionscript fonts flash-builder embed

我正在尝试将字体嵌入到Flash Builder 4.5中的Actionscript 3项目中。我找到了几个例子和修复,但没有一个有我的问题。我的嵌入字体显示在enumeratedFonts列表中,我没有错误,但是当我在TextFormat中使用它时,它只会回到系统默认字体。我已尝试使用此帖子中的几个Embed() - 属性和编译器参数: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);
    }
}

}

2 个答案:

答案 0 :(得分:2)

您可以尝试将fontName更改为其他内容,例如&#34; testfontname&#34;并提供一个字体系列,例如&#34; testfontfamily&#34;

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

然后用这个名字嵌入它:

fmt.font = "testfontname";

答案 1 :(得分:0)

如果您正在使用TLFTextField,则必须将“embedAsCFF”值更改为true,因为TLFText使用新的Flash文本引擎。