Flash AS3: intento de cambiar la fuente incrustada actual por otra, excepto que la nueva fuente no se muestra

He heredado un proyecto y necesito cambiar el estilo para usarlo con otra empresa y tengo problemas para cambiar la fuente incrustada actualmente, DIN Next LT Pro, con Helvetica Neue

Soy nuevo en flash y AS3, así que realmente estoy aprendiendo esto desde cero. Diciendo que pasé el último día investigando este problema en Google y probando una multitud de soluciones en vano.

Así es como se configura el flash.

comentarios.fla que tiene las siguientes fuentes incrustadas:

  • DIN Next LT Pro negrita condensada
  • DIN Next LT Pro Ligero Condensado
  • DIN Next LT Pro Normal
  • Helvetica Neue LT Std 45 Luz
  • Helvetica Neue LT Std 55 Roman
  • Helvetica Neue LT Std 75 Negrita

Las fuentes DIN ya estaban instaladas. Agregué la fuente Helvetica haciendo clic en incrustar, agregando un nombre de fuente igual que la fuente pero sin espacios, por ejemplo: HelveticaNeueLTStd75Bold.

FeedbackPage.as parece especificar las fuentes que se utilizarán y aplicarlas a una etiqueta:

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 también importa otro archivo .as:

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

PercentFeedback.as Este archivo crea los campos de texto y aplica la fuente:

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

Después de incrustar mi nueva fuente Helvetica Neue LT Std 75 Bold en el archivo fla, cambio FeedbackPage.as a:

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

Exporte mi fla, cargue y eche un vistazo y el texto ha desaparecido. He intentado usar el nombre que asignas cuando incrustas (HelveticaNeueLTStd75Bold) pero tampoco funciona.

¿Alguna idea ya que estoy masivamente atascado?

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

    }
}

preguntado el 03 de mayo de 12 a las 14:05

Muestre el código para TextFieldUtils.createTextField() para principiantes... -

1 Respuestas

Intente usar una fuente incrustada colocándola en la biblioteca (de esa manera, las personas también pueden verla si no tienen esa fuente instalada en su computadora) y hacer una var a partir de ella. Luego configure la fuente con ese nombre (myFormat.font = myFont.fontName; donde myFormat es el nombre de su TextFormat y myFont es el nombre de la variable de su fuente. la parte 'fontName' debe mantenerse así y no también el nombre de su fuente)

Además, no estoy seguro, pero creo que debido a que "Helvetica Neue LT Std 75 Bold" y "HelveticaNeueLTStd75Bold" no son lo mismo (porque uno tiene espacios), es posible que Flash no entienda a qué fuente se refiere.

contestado el 23 de mayo de 12 a las 16:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.