I campi di testo possono contenere testo semplice o testo in formato HTML. Il testo semplice viene memorizzato nella proprietà
text
dell'istanza, mentre il testo HTML viene memorizzato nella proprietà
htmlText
.
È possibile utilizzare le dichiarazioni di stile CSS per definire gli stili di testo che è possibile applicare a molti campi di testo diversi. La dichiarazione di stile CSS può essere creata nel codice dell'applicazione oppure caricata in fase di runtime da un file CSS esterno.
La classe flash.text.StyleSheet gestisce gli stili CSS. La classe StyleSheet riconosce un set limitato di proprietà CSS. Per un elenco dettagliato delle proprietà di stile supportate dalla classe StyleSheet, consultate la sezione relativa a flash.textStylesheet nella Guida di riferimento di ActionScript 3.0.
Come mostra l'esempio seguente, è possibile creare dei fogli di stile CSS (Cascading Style Sheets) nel codice e applicarli al testo HTML mediante un oggetto 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);
Una volta creato l'oggetto StyleSheet, il codice di esempio crea un oggetto semplice che contiene un set di proprietà di dichiarazioni di stile. Quindi, chiama il metodo
StyleSheet.setStyle()
, che aggiunge il nuovo stile al foglio di stile di nome “.darkred”. Poi applica la formattazione del foglio di stile assegnando l'oggetto StyleSheet alla proprietà
styleSheet
di TextField.
Affinché gli stili CSS abbiano effetto, i fogli di stile devono essere applicati all'oggetto TextField prima di impostare la proprietà
htmlText
.
Per impostazione in fase di progettazione, un campo di testo al quale è applicato un foglio di stile non è modificabile. Se si assegna a un campo di testo di input un foglio di stile, il campo di testo mostra le proprietà del foglio di stile ma il campo di testo non consente agli utenti di immettervi del nuovo testo. Inoltre, non è possibile utilizzare le seguenti API ActionScript su un campo di testo con un foglio di stile:
-
Il metodo
TextField.replaceText()
-
Il metodo
TextField.replaceSelectedText()
-
La proprietà
TextField.defaultTextFormat
-
Il metodo
TextField.setTextFormat()
Se a un campo di testo è stato assegnato un foglio di stile ma successivamente la proprietà
TextField.styleSheet
viene impostata su
null
, il contenuto dei tag
TextField.text
e
TextField.htmlText
aggiunge dei tag e degli attributi al loro contenuto per incorporare la formattazione del foglio di stile precedentemente assegnato. Per conservare la proprietà
htmlText
originale, salvarla in una variabile prima di impostare il foglio di stile su
null
.