Textfelder können entweder unformatierten oder HTML-formatierten Text enthalten. Unformatierter Text wird in der text-Eigenschaft der Instanz gespeichert und HTML-Text in der htmlText-Eigenschaft.
Mithilfe von CSS-Stylesheets können Sie Textformate definieren, die Sie auf viele verschiedene Textfelder anwenden können. CSS-Stylesheets können im Anwendungscode erstellt oder zur Laufzeit aus einer externen CSS-Datei geladen werden.
Mit der flash.text.StyleSheet-Klasse werden CSS-Stile verarbeitet. Mit der StyleSheet-Klasse wird eine begrenzte Anzahl von CSS-Eigenschaften erkannt. Eine detaillierte Aufstellung der Stileigenschaften, die von der StyleSheet-Klasse unterstützt werden, finden Sie im ActionScript 3.0-Referenzhandbuch im Eintrag zur flash.textStylesheet-Eigenschaft.
Wie im folgenden Beispiel dargestellt ist, können Sie CSS-Stylesheets im Code erstellen und mithilfe eines StyleSheet-Objekts auf HTML-Text anwenden:
var style:StyleSheet = new StyleSheet();
var styleObj:Object = new Object();
styleObj.fontSize = "bold";
styleObj.color = "#FF0000";
style.setStyle(".darkRed", styleObj);
var tf:TextField = new TextField();
tf.styleSheet = style;
tf.htmlText = "<span class = 'darkRed'>Red</span> apple";
addChild(tf);
Nach dem Erstellen eines StyleSheet-Objekts wird im Codebeispiel ein einfaches Objekt zum Aufnehmen einer Gruppe von Eigenschaften für das Stylesheet erstellt. Anschließend wird die StyleSheet.setStyle()-Methode aufgerufen, mit der der neue Stil mit dem Namen „.darkred“ zum Stylesheet hinzugefügt wird. Dann wird die Formatierung des Stylesheets angewendet, indem das StyleSheet-Objekt zur styleSheet-Eigenschaft des TextField-Objekts zugewiesen wird.
Damit die CSS-Stile wirksam werden, sollte das Stylesheet auf das TextField-Objekt angewendet werden, bevor die htmlText-Eigenschaft festgelegt wird.
Ein Textfeld, auf das ein Stylesheet angewendet wurde, kann nicht mehr bearbeitet werden. Wenn Sie einem Eingabetextfeld ein Stylesheet zuweisen, wird das Textfeld mit den Eigenschaften des Stylesheets angezeigt. Benutzer können jedoch keinen neuen Text in das Textfeld eingeben. Darüber hinaus können auch die folgenden ActionScript-APIs nicht mehr für ein Textfeld mit einem zugewiesenen Stylesheet verwendet werden:
TextField.replaceText()-Methode
TextField.replaceSelectedText()-Methode
TextField.defaultTextFormat-Eigenschaft
TextField.setTextFormat()-Methode
Wenn einem Textfeld ein Stylesheet zugewiesen wurde, die TextField.styleSheet-Eigenschaft jedoch später auf den Wert null gesetzt wird, werden den Inhalten der Eigenschaften TextField.text und TextField.htmlText Tags und Attribute hinzugefügt, um die Formatierung des zuvor zugewiesenen Stylesheets einzubinden. Um die ursprüngliche htmlText-Eigenschaft beizubehalten, müssen Sie diese in einer Variablen speichern, bevor Sie dem Stylesheet den Wert null zuweisen.