嵌入字体不会出现在actionscript创建的文本字段中

时间:2012-03-22 02:55:46

标签: actionscript-3 embedded-fonts flash-cs5

我想在这个文本墙前加上说,我对此很新。我可能会遗漏一些明显的东西。

我正在使用Actionscript 3在Flash CS5中工作。我正在尝试使用actionscript创建一个文本字段,并用文本填充它。我使用“字体嵌入”窗口将我的字体嵌入到项目中。但是,当运行创建文本字段的代码时,如果“embedFont = true;”,则该字体是不可见的。当鼠标悬停在光标上时光标仍会改变,所以我知道它在那里。或者至少它的文本框是,我猜。已经在舞台上的嵌入文本的动态文本字段似乎不受影响。

我尝试更改嵌入字体大纲格式,但都不起作用。我尝试通过actionscript直接嵌入带有“embed”标签的字体,但它似乎不适用于CS5,或者我不知道我在做什么。正如您在提供的代码中看到的那样,我尝试过“注册”字体,但没有成功。我尝试过使用:

var font:Font = new screenfont(); //"screenfont" is the name from Embedding Fonts    

var format:TextFormat = new TextFormat();

format.font = screenfont.fontName;

没有骰子。

我已经关注了一些关于嵌入的不同教程,并遇到了大量冲突,混乱的信息。我已经阅读了一些与此主题有关的不同帖子,但至今尚未找到任何可行的解决方案。

这是我的代码的简单版本,其中“screenfont”是我在嵌入字体窗口中指定的名称:

Font.registerFont(screenfont);

            //TextFormat
var listformat:TextFormat = new TextFormat();

listformat.align = TextFormatAlign.LEFT;
listformat.size = 20.8;
listformat.color = 0x0DAC54;
listformat.font="Fixedsys Excelsior 3.01";


           //TextField
var photolist:TextField = new TextField();
    photolist.x = photos_x;
    photolist.y = tempY;
    photolist.width = photos_wdth;
    photolist.height = photos_hght;
    photolist.text = photoname;

    photolist.embedFonts = true; //<--- This freakin' guy!

    photolist.antiAliasType = AntiAliasType.ADVANCED;
    photolist.defaultTextFormat=listformat;
    photolist.selectable = false;
    photolist.wordWrap =  true;

    mediapage.photos.addChild(photolist);

我希望这能提供一个清晰的画面。

那么,在CS5中完成嵌入的确切程度如何?

1 个答案:

答案 0 :(得分:4)

您应该将文本设置为您做的最后一件事。所以这一行photolist.text = photoname;应该在其他一切之后。

var photolist:TextField = new TextField();
photolist.x = photos_x;
photolist.y = tempY;
photolist.width = photos_wdth;
photolist.height = photos_hght;

photolist.embedFonts = true; 
photolist.antiAliasType = AntiAliasType.ADVANCED;
photolist.defaultTextFormat=listformat;
photolist.selectable = false;
photolist.wordWrap =  true;
photolist.text = photoname;//<-- set text only after applying all formatting and embedding

mediapage.photos.addChild(photolist);