【问题标题】:Problem embedding font and displaying it correctly in Flash嵌入字体并在 Flash 中正确显示的问题
【发布时间】:2009-10-20 15:29:16
【问题描述】:

我正在寻找正确的文本字段参数或解决我在此处处理 Flash 字体和文本字段的最新问题的解决方法。

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


(来源: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 questionX_x的这段代码


固定工作核心:感谢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)

图形示例:

正常

高级

【问题讨论】:

    标签: flash actionscript-3 text fonts antialiasing


    【解决方案1】:

    在 Flash 中控制文本渲染有时会很痛苦...

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

    【讨论】:

    • 嘿 thx 也将尝试这些。但我注意到我将字体大小增加到 12 和 16 并且我可以看出它不是富兰克林哥特式,但有时它看起来好多了8 毫米以外的尺寸
    • 您确定嵌入并使用嵌入字体吗?
    • 我导入了字体并给它起了类名:FranklinGothic,但我想这还不是我必须正确嵌入它的全部吗? :(
    • 试试这个:将tsFont.font = FranklinGothic;行更改为tsFont.font = (new FranklinGothic() as Font).fontName;。然后添加tsLogo.embedFonts = true;
    • 啊,太好了!我的字体现在是 FranklinGothic,并且 Aliasing 可以使用它:D...
    【解决方案2】:

    尝试添加此代码:

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

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

    【讨论】:

    • hmm 两者都试过了,结果还是一样...开始怀疑它是否与实际字体 Franklin Gothic 有关
    • 我刚刚意识到我有一个不同的问题,正确嵌入字体,但您的解决方案确实适用于抗锯齿,谢谢!
    【解决方案3】:

    是的,请确保检查 Aliasing,但如果不这样做,我会尝试调用:

    tsLogo.setTextFormat(tsFont)
    

    在您设置文本之后。该函数会将字体应用于字段中的文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 2010-11-07
      • 2020-08-31
      • 1970-01-01
      相关资源
      最近更新 更多