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.