问题嵌入字体并在Flash中正确显示

时间:2009-10-20 15:29:17

标签: flash actionscript-3 text fonts antialiasing

我正在寻找合适的文本字段参数或解决我最新的问题,处理Flash字体&文本字段。

我有一个textFormat和textField生成一些文本使用Font:Franklin Gothic Book point size 8.目前这是我运行电影时字体的样子:

alt text
(来源:flickr.com

底部的®MYLOGO是来自Photoshop的jpg,干净且应该如何显示。接下来是Flash中舞台上直接键入的字体,最顶层的®MYLOGO是从我的代码生成的。

我缺少哪些参数使代码生成的副本看起来尽可能接近Jpeg?

我的代码如下:

var tsFont = new TextFormat();
    tsFont.font = FranklinGothic;
    tsFont.size = 8;
    tsFont.color = 0xFFFFFF;
    tsFont.align = TextFormatAlign.LEFT;

var tsLogo:TextField = new TextField();
    tsLogo.defaultTextFormat = tsFont;
    tsLogo.selectable = false;
    tsLogo.mouseEnabled = false;
    tsLogo.x = 18;
    tsLogo.y = 98;
    tsLogo.width = 64;
    tsLogo.height = 16;
    tsLogo.text = "®MYLOGO";

    addChild(tsLogo);

你们可能记得来自my last question X_x

的代码

固定工作核心: thx到Andy Li

var tsFont = new TextFormat();
    tsFont.font = (new FranklinGothic() as Font).fontName;
    tsFont.size = 8;
    tsFont.color = 0xFFFFFF;
    tsFont.align = TextFormatAlign.LEFT;

var tsLogo:TextField = new TextField();
    tsLogo.selectable        = false;
    tsLogo.mouseEnabled      = false;
    tsLogo.embedFonts        = true;
    tsLogo.antiAliasType     = flash.text.AntiAliasType.NORMAL;
    tsLogo.gridFitType       = "pixel";
    tsLogo.sharpness         = 400
    tsLogo.x                 = 6;
    tsLogo.y                 = 5;
    tsLogo.width             = 600;
    tsLogo.height            = 40;
    tsLogo.text              = "®MYLOGO";
    tsLogo.setTextFormat(tsFont)

图示:

正常

alt text

ADVANCED

alt text

3 个答案:

答案 0 :(得分:2)

尝试添加此代码:

tsLogo.antiAliasType = flash.text.AntiAliasType.NORMAL;

tsLogo.antiAliasType = flash.text.AntiAliasType.ADVANCED;

答案 1 :(得分:2)

在某些时候控制Flash中的文本呈现是痛苦的......

您需要玩antiAliasType的几个属性:gridFitTypesharpnessthicknessTextField。试试Adobe's example。或even more detailed tutorial

答案 2 :(得分:1)

是的,请确保检查别名,但如果不这样做,我会尝试致电:

tsLogo.setTextFormat(tsFont)

设置文本后立即生效。该函数将字体应用于字段中的文本。