Pola tekstowe mogą zawierać zwykły tekst lub sformatowany tekst HTML. Zwykły tekst jest przechowywany we właściwości
text
instancji, natomiast tekst HTML jest przechowywany we właściwości
htmlText
.
Można używać deklaracji stylów CSS do definiowania stylów tekstu przeznaczonych do stosowania do wielu różnych pól tekstowych. Deklaracje stylów CSS mogą być tworzone w kodzie aplikacji lub ładowane w czasie wykonywania z zewnętrznego pliku CSS.
Do obsługi stylów CSS służy klasa flash.text.StyleSheet. Klasa StyleSheet rozpoznaje ograniczony zbiór właściwości CSS. Szczegółową listę właściwości stylów obsługiwanych przez klasę StyleSheet zawiera opis klasy flash.textStylesheet w Skorowidzu języka ActionScript 3.0.
Poniższy przykład ilustruje możliwość utworzenia arkusza CSS w kodzie programu i zastosowania stylów z tego arkusza do tekstu HTML za pośrednictwem obiektu StyleSheet:
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);
Po utworzeniu obiektu StyleSheet przykładowy kod tworzy prosty obiekt zawierający zestaw właściwości deklarujących style. Następnie wywoływana jest metoda
StyleSheet.setStyle()
, która dodaje nowy styl do arkusza stylów pod nazwą „.darkred”. Następnie format arkusza stylów jest stosowany poprzez przypisanie obiektu StyleSheet do właściwości
styleSheet
obiektu TextField.
Aby zastosowanie stylów CSS było skuteczne, arkusz stylów musi być zastosowany do obiektu TextField przed przypisaniem wartości właściwości
htmlText
.
Z założenia pole tekstowe z arkuszem stylów nie może być edytowane. Jeśli arkusz stylów zostanie zastosowany do pola tekstu wejściowego, właściwości arkusza stylów zostaną uwzględnione w wyświetlanym polu, ale użytkownik nie będzie mógł wprowadzać nowego tekstu w polu. Ponadto do pola tekstowego z przypisanym arkuszem stylów nie można stosować następujących elementów interfejsu API języka ActionScript:
-
metody
TextField.replaceText()
;
-
metody
TextField.replaceSelectedText()
;
-
właściwości
TextField.defaultTextFormat
;
-
metody
TextField.setTextFormat()
.
Jeśli do pola tekstowego zostanie przypisany arkusz stylów, ale później właściwość
TextField.styleSheet
zostanie ustawiona na
null
, do treści właściwości
TextField.text
i
TextField.htmlText
zostaną dodane znaczniki i atrybuty w celu uwzględnienia formatowania z poprzednio przypisanego arkusza stylów. Aby zachować oryginalną treść właściwości
htmlText
, należy zapisać ją w zmiennej przed przypisaniem właściwości arkusza stylów wartości
null
.