He revisado todos los temas sobre la incrustación de fuentes en AS3 que pude encontrar, e intenté todas las soluciones. Probablemente me esté perdiendo algo obvio, pero no entiendo completamente lo que estoy haciendo, así que por favor guíame en la dirección correcta. Muchas de las respuestas involucran Flash Builder u otra herramienta pero utilizo FlashDevelop. No tengo idea de si eso importa.¿Por qué no puedo visualizar las fuentes incrustadas en AS3?
tengo esta línea en mis Main.as:
[Embed(source = "assets/SKA_75_marul_CE_extended.ttf",
fontName = "SKA_75_marul_CE_extended",
fontWeight = "bold",
advancedAntiAliasing = "true",
mimeType = "application/x-font")]
public static var SKA_75_marul_CE_extended:String;
Y esto existe en el constructor de una Sprite extendida llamada Pointer.as:
var format:TextFormat = new TextFormat();
format.font = "SKA_75_marul_CE_extended";
format.color = 0xFFCCCC;
format.size = 20;
var label:TextField = new TextField();
label.defaultTextFormat = format;
label.text = "test";
label.embedFonts = true;
label.antiAliasType = AntiAliasType.ADVANCED;
//label.setTextFormat(format); --> I tried this too, didn't work...
label.defaultTextFormat = format;
label.x += img.width + 50;
this.addChild(label);
La única forma que he encontrado para que muestre algo es si desactivo embedFonts. Intenté incrustar C: /windows/fonts/arial.ttf sin éxito.
Parece que la incrustación de fuentes es un arte oscuro como ningún otro y debo reconocerlo después de 1 hora de lucha. Por favor envía ayuda.
ACTUALIZACIÓN:
Aquí está el código de trabajo, resulta que era debido a tener el orden correcto de las operaciones ...:
[Embed(source="assets/SKA_75_marul_CE_extended.ttf",
fontName = "myFont",
mimeType = "application/x-font",
fontWeight="normal",
fontStyle="normal",
unicodeRange="U+0020-U+007E",
advancedAntiAliasing="true",
embedAsCFF="false")]
private var myEmbeddedFont:Class;
var tf:TextFormat = new TextFormat("myFont", 20,0xffffff);
var t:TextField = new TextField;
t.embedFonts = true; // very important to set
t.defaultTextFormat = tf;
t.text = text;
t.x += img.width + 50;
t.width = 700;
this.addChild(t);
Gracias por su respuesta. El "orden correcto de las operaciones" resultó ser la clave –