Flash CS5,动态字体嵌入问题

时间:2011-03-08 11:59:16

标签: actionscript-3 flash-cs5 font-embedding

我正在尝试使用字体嵌入创建动态文本字段。嵌入是这样的动态:

public class TextFormats extends TextFormat {

    private var TF:TextFormat = new TextFormat();
    [Embed(source = "/fonts/tahoma.ttf", fontWeight = "normal", fontFamily = "tahomaNormal")]
    var fontTahoma:Class;               

    private var fTahoma:Font;

    public function TextFormats():void {
        fTahoma = new fontTahoma();
    }

    public function format(fmb:String):TextFormat {
        TF.letterSpacing = -1;
        TF.font = fTahoma.fontName;     
        switch(fmb) {
            case "combolist_label":                 
                TF.color = 0x383838;
                TF.size = 13;
                TF.letterSpacing = 0;
                break;                  
        }
        return TF;
    }
}   

当我在flash CS4中编译它时,嵌入的文本会出现在舞台上!但是,当我尝试使用Flash CS5编译它时,文本不会出现,也没有错误警告 是什么原因?我应该使用其他方法进行字体嵌入吗?!

1 个答案:

答案 0 :(得分:2)

有一些文章发表了关于CS5中新增的字体嵌入的巨大差异。我觉得这个很好:

Having trouble with embedded fonts and HTML text in Flash CS5?

嵌入字体的方式是对CS5的改进 - 但这意味着当您在CS5中打开FLA进行编辑时,所有CS5动态文本字段都会中断!哪个糟透了! (在SWF中部署的一切仍然可以正常工作。)

如果在CS5中打开CS4 FLA,则基本上需要重建动态文本字段并重新应用嵌入。

代码here

import flash.text.*;
var font:Font1=new Font1();
var txt_fmt:TextFormat=new TextFormat();
txt_fmt.font=font.fontName;
txt_fmt.size=24
var txt:TextField=new TextField();
txt.autoSize=TextFieldAutoSize.LEFT;
txt.defaultTextFormat=txt_fmt;
txt.embedFonts=true
txt.text="Designscripting.com"
txt.selectable=false
addChild(txt);