Ich habe alle Themen zum Einbetten von Fonts in AS3 durchgelesen, die ich finden konnte, und alle Lösungen ausprobiert. Ich vermisse wahrscheinlich etwas Offensichtliches, aber ich verstehe nicht ganz, was ich tue. Bitte leite mich in die richtige Richtung. Viele der Antworten beziehen sich auf Flash Builder oder ein anderes Tool, aber ich verwende FlashDevelop. Keine Ahnung, ob das zählt.Warum kann ich eingebettete Schriftarten nicht in AS3 anzeigen?
Ich habe diese Zeile in meinem 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;
Und diese besteht im Konstruktor eines erweiterten Sprite namens 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);
Der einzige Weg, die ich gefunden habe um es anzuzeigen, ist alles, wenn ich EmbedFonts ausschalten. Ich habe versucht, C: /windows/fonts/arial.ttf ohne Erfolg einzubetten.
Es scheint, dass die Einbettung von Schriften ist eine dunkle Kunst wie keine andere und ich muss zugeben, nach 1 Stunde kämpfen. Bitte senden Sie Hilfe.
UPDATE:
Hier ist der Arbeitscode, stellt sich heraus, es fällig war die richtige Reihenfolge der Operationen mit ...:
[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);
Vielen Dank für Ihre Antwort. "Richtige Reihenfolge der Operationen" erwies sich als der Schlüssel –