Erweiterte Textdarstellung

Flash Player 9 und höher, Adobe AIR 1.0 und höher

ActionScript 3.0 stellt im flash.text-Paket eine Vielzahl von Klassen zum Festlegen der Eigenschaften von Anzeigetext bereit. Dazu zählen eingebettete Schriftarten, Anti-Aliasing-Einstellungen, Alphakanalsteuerung und weitere spezielle Einstellungen. Im ActionScript 3.0-Referenzhandbuch finden Sie ausführliche Beschreibungen dieser Klassen und Eigenschaften, einschließlich der CSMSettings-, Font- und TextRenderer-Klassen.

Verwenden eingebetteter Schriftarten

Wenn Sie eine bestimmte Schriftart für ein TextField-Objekt in der Anwendung angeben, wird in Flash Player oder AIR eine Geräteschriftart (eine auf dem Computer des Benutzers gespeicherte Schriftart) mit demselben Namen gesucht. Wenn diese Schriftart auf dem Computer des Benutzers nicht gefunden wird oder der Benutzer über eine geringfügig abweichende Schriftartversion mit diesem Namen verfügt, kann sich die Textanzeige erheblich von der gewünschten Anzeige unterscheiden. Standardmäßig wird der Text in der Schriftart Times Roman angezeigt.

Um sicherzustellen, dass genau die gewünschte Schriftart angezeigt wird, können Sie die Schriftart in die SWF-Datei der Anwendung einbetten. Eingebettete Schriftarten weisen mehrere Vorteile auf:

  • Bei Zeichen eingebetteter Schriftarten wird das Anti-Aliasing-Verfahren durchgeführt, sodass die Zeichenkonturen glatter erscheinen, vor allem bei großer Schrift.

  • Text mit eingebetteten Schriftarten kann gedreht werden.

  • Text mit eingebetteten Schriftarten kann transparent oder halbtransparent dargestellt werden.

  • Bei eingebetteten Schriftarten kann der CSS-Stil kerning verwendet werden.

Der größte Nachteil bei der Verwendung eingebetteter Schriftarten liegt darin, dass sich die Dateigröße oder Downloadgröße der Anwendung erhöht.

Das genaue Verfahren zum Einbetten einer Schriftartdatei in die SWF-Datei der Anwendung hängt von der jeweiligen Entwicklungsumgebung ab.

Nach dem Einbetten einer Schriftart können Sie folgendermaßen überprüfen, ob in einem TextField-Objekt die korrekte eingebettete Schriftart verwendet wird:

  • Setzen Sie die embedFonts -Eigenschaft des TextField-Objekts auf true .

  • Erstellen Sie ein TextFormat-Objekt, setzen Sie die zugehörige fontFamily -Eigenschaft auf den Namen der eingebetteten Schriftart und wenden Sie das TextFormat-Objekt auf das TextField-Objekt an. Bei der Angabe einer eingebetteten Schriftart sollte die fontFamily -Eigenschaft nur einen Namen enthalten. Es können nicht mehrere durch Kommas getrennte Schriftartnamen angegeben werden.

  • Wenn Sie Schriftarten für TextField-Objekte oder Komponenten mithilfe von CSS-Stilen festlegen möchten, setzen Sie die CSS-Eigenschaft font-family auf den Namen der eingebetteten Schriftart. Die font-family -Eigenschaft darf nur einen einzelnen Namen und keine Liste mit Namen enthalten, wenn Sie eine eingebettete Schriftart angeben möchten.

Einbetten von Schriftarten in Flash

In Flash Professional können Sie nahezu alle Schriftarten einbetten, die auf Ihrem Computer installiert sind, einschließlich TrueType-Schriftarten und PostScript Type 1-Schriftarten.

Schriftarten können auf verschiedene Weise in eine Anwendung eingebettet werden, z. B.:

  • Festlegen der Schriftart- und Stileigenschaften eines TextField-Objekts auf der Bühne sowie Aktivieren des Kontrollkästchens „Schriftarten einbetten“

  • Erstellen eines Schriftartsymbols und Verweisen auf dieses Schriftartsymbol

  • Erstellen und Verwenden einer gemeinsam genutzten Laufzeitbibliothek mit eingebetteten Schriftartsymbolen

Weitere Informationen zum Einbetten von Schriftarten in Flash-Anwendungen finden Sie unter „Eingebettete Schriftarten für dynamische Textfelder oder Eingabetextfelder“ im Handbuch Verwenden von Flash .

Einbetten von Schriftarten in Flex

Schriftarten können auf verschiedene Weise in eine Flex-Anwendung eingebettet werden, z. B.:

  • Verwenden des Metadaten-Tags [Embed] in einem Skript

  • Verwenden des Stylesheets @font-face

  • Festlegen einer Klasse für die Schriftart und Einbetten mithilfe des [Embed] -Tags

Sie können nur TrueType-Schriftarten direkt in eine Flex-Anwendung einbetten. Schriftarten in anderen Formaten, wie Type 1 Postscript-Schriftarten, müssen zunächst mit Flash Professional in eine SWF-Datei eingebettet werden. Anschließend kann diese SWF-Datei dann in der Flex-Anwendung verwendet werden. Weitere Informationen zur Verwendung eingebetteter Schriftarten aus SWF-Dateien in Flex finden Sie im Handbuch Using Flex 4 unter „Embedding fonts from SWF files“.

Festlegen der Textschärfe, Schriftstärke und des Anti-Aliasings

In der Standardeinstellung werden in Flash Player oder AIR die Einstellungen für die Textanzeige, wie Textschärfe, Schriftstärke und Anti-Aliasing, festgelegt, wenn die Textgröße oder die Farbe geändert oder der Text mit einem anderen Hintergrund angezeigt wird. In einigen Fällen, etwa bei sehr kleinem oder sehr großem Text oder Text mit einer Auswahl besonderer Hintergründe, ist es ggf. wünschenswert, diese Einstellungen selbst zu steuern. Sie können die Flash Player- bzw. AIR-Einstellungen mithilfe der flash.text.TextRenderer -Klasse und der entsprechenden zugeordneten Klassen, z. B. der CSMSettings-Klasse, außer Kraft setzen. Mit diesen Klassen können Sie die Darstellungsqualität des eingebetteten Textes genau festlegen. Weitere Informationen zu eingebetteten Schriftarten finden Sie unter Verwenden eingebetteter Schriftarten .

Hinweis: Die flash.text.TextField.antiAliasType -Eigenschaft muss den Wert AntiAliasType.ADVANCED aufweisen, damit Sie die Textschärfe, die Schriftstärke oder die gridFitType-Eigenschaft festlegen oder die TextRenderer.setAdvancedAntiAliasingTable() -Methode verwenden können.

Im folgenden Beispiel werden benutzerdefinierte CSM-Eigenschaften (Continuous Stroke Modulation) und CSM-Formatierungen mit einer eingebetteten Schriftart mit dem Namen myFont auf den angezeigten Text angewendet. Wenn der Benutzer auf den angezeigten Text klickt, werden in Flash Player oder Adobe AIR die benutzerdefinierten Einstellungen angewendet:

var format:TextFormat = new TextFormat(); 
format.color = 0x336699; 
format.size = 48; 
format.font = "myFont"; 
 
var myText:TextField = new TextField(); 
myText.embedFonts = true; 
myText.autoSize = TextFieldAutoSize.LEFT; 
myText.antiAliasType = AntiAliasType.ADVANCED; 
myText.defaultTextFormat = format; 
myText.selectable = false; 
myText.mouseEnabled = true; 
myText.text = "Hello World"; 
addChild(myText); 
myText.addEventListener(MouseEvent.CLICK, clickHandler); 
 
function clickHandler(event:Event):void 
{ 
    var myAntiAliasSettings = new CSMSettings(48, 0.8, -0.8); 
    var myAliasTable:Array = new Array(myAntiAliasSettings); 
    TextRenderer.setAdvancedAntiAliasingTable("myFont", FontStyle.ITALIC, TextColorType.DARK_COLOR, myAliasTable); 
}