0

我继承了一个项目,需要重新设计以供另一家公司使用,我无法使用 Helvetica Neue 更改当前嵌入的字体 DIN Next LT Pro

我是 Flash 和 AS3 的新手,所以真的从头开始学习。说我花了最后一天在谷歌上研究这个问题并尝试了多种解决方案都无济于事。

以下是闪光灯的设置方法。

feedback.fla嵌入了以下字体:

  • DIN Next LT Pro Bold Condensed
  • DIN Next LT Pro Light Condensed
  • DIN Next LT Pro 常规
  • Helvetica Neue LT Std 45 Light
  • Helvetica Neue LT Std 55 Roman
  • Helvetica Neue LT Std 75 粗体

DIN 字体已安装。我通过单击嵌入添加了 Helvetica 字体,添加了一个与字体相同但没有空格的字体名称,例如:HelveticaNeueLTStd75Bold。

FeedbackPage.as似乎指定了要使用的字体并将它们应用于标签:

public class FeedbackPage extends AbstractPage {
    public static const FONT_BOLD : String = "DIN Next LT Pro Bold Condensed";
    public static const FONT_LIGHT : String = "DIN Next LT Pro Light Condensed";
    public static const FONT_REGULAR : String = "DIN Next LT Pro";
    etc.. etc..

FeedbackPage.as 还导入另一个 .as 文件:

import dk.electric.synoptik.components.feedbackelements.PercentFeedback;

PercentFeedback.as此文件创建文本文件并应用字体:

var tfmtPercent : TextFormat = new TextFormat(FeedbackPage.FONT_BOLD, fontSize, 0x0a9fda);
_tfPercent = TextFieldUtils.createTextField(6, yPos, 150, 95, Math.abs(pctDif).toString() + "%", tfmtPercent, false, TextFieldAutoSize.NONE);
_sprContainer.addChild(_tfPercent);

将我的新字体 Helvetica Neue LT Std 75 Bold 嵌入到 fla 文件后,我将 FeedbackPage.as 更改为:

public static const FONT_BOLD : String = "Helvetica Neue LT Std 75 Bold";

导出我的fla,上传看看,文字消失了。我尝试使用嵌入时指定的名称(HelveticaNeueLTStd75Bold),但这也不起作用。

有什么想法,因为我被大量卡住了吗?

文本字段实用程序

package com.madsb.utils {
    import flash.text.TextField;
    import flash.text.TextFormat;

    public class TextFieldUtils {

        public static function createTextField(x : Number = 0,
            y : Number = 0,
            width : Number = 100,
            height : Number = 100,
            text : String = "",
            textFormat : TextFormat = null,
            multilineWordWrap : Boolean = false,
            autoSize : String = "none",
            embedFonts : Boolean = true,
            antiAliasType : String = "advanced",
            selectable : Boolean = false) : TextField {

                var tf : TextField = new TextField();
                tf.x = x;
                tf.y = y;
                tf.width = width;
                tf.height = height;
                tf.embedFonts = embedFonts;
                tf.selectable = selectable;
                tf.multiline = tf.wordWrap = multilineWordWrap;
                tf.autoSize = autoSize;
                tf.antiAliasType = antiAliasType;
                tf.defaultTextFormat = textFormat;
                tf.htmlText = text;

                return tf;
            }

    }
}
4

1 回答 1

0

尝试通过将嵌入字体放入库中来使用嵌入字体(这样,如果他们的计算机上没有安装该字体,人们也可以看到它)并从中制作一个 var。然后将字体设置为该名称(myFormat.font = myFont.fontName;其中 myFormat 名称是您的 TextFormat 的名称,myFont 是您字体的变量名称。“fontName”部分应该保持这样,而不是您的字体名称)

另外,我不确定,但我认为因为“Helvetica Neue LT Std 75 Bold”和“HelveticaNeueLTStd75Bold”不一样(因为有空格),flash 可能无法理解您指的是哪种字体。

于 2012-05-23T15:08:08.950 回答