Flash AS3 - 尝试将当前嵌入字体更改为另一种字体,但未显示新字体



我已经设计了一个项目,需要重新设置样式以用于另一家公司,但我在使用Helvetica Neue更改当前嵌入的字体DIN Next LT Pro时遇到问题

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

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

反馈.fla嵌入了以下字体:

  • DIN 下一页 LT 专业版
  • 粗体浓缩
  • DIN 下一页 LT 专业版聚光灯
  • DIN 下一页 LT 专业版
  • 常规
  • Helvetica Neue LT Std 45 Light
  • Helvetica Neue LT Std 55 Roman
  • Helvetica Neue LT Std 75 Bold

已安装 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 粗体嵌入到 fla 文件后,我将 FeedbackPage.as 更改为:

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

导出我的fla,上传并查看,文本已消失。我尝试使用您在嵌入时分配的名称(HelveticaNeueLTStd75Bold(,但这也不起作用。

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

TextFieldUtils

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;
            }
    }
}

尝试使用嵌入字体,方法是将其放入库中(这样,如果计算机上没有安装该字体,人们也可以看到它(并从中创建一个变量。然后将字体设置为该名称(myFormat.font = myFont.fontName;其中myFormat的名称是TextFormat的名称,myFont是字体的变量名称。

另外,我不确定,但我认为因为"Helvetica Neue LT Std 75 Bold"和"HelveticaNeueLTStd75Bold"不一样(因为一个有空格(,flash可能不明白你指的是哪种字体。

最新更新