Los campos de texto pueden incluir texto sin formato o texto con formato HTML. El texto sin formato se almacena en la propiedad
text
de la instancia y el texto HTML se almacena en la propiedad
htmlText
.
Se pueden utilizar declaraciones de estilos CSS para definir estilos de texto que pueden aplicarse a varios campos de texto distintos. Las declaraciones de estilos CSS pueden crearse en el código de la aplicación o cargarse en tiempo de ejecución desde un archivo CSS externo.
La clase flash.text.StyleSheet administra estilos CSS. La clase StyleSheet reconoce un conjunto limitado de propiedades CSS. Para ver una lista detallada de propiedades de estilos admitidas por la clase StyleSheet, consulte la entrada de flash.textStylesheet en la Referencia de ActionScript 3.0.
Tal y como se indica en el ejemplo siguiente, se pueden crear hojas de estilos CSS en el código y aplicar dichos estilos a texto HTML mediante un objeto 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);
Tras crear un objeto StyleSheet, el código de ejemplo crea un objeto simple para almacenar un conjunto de propiedades de declaración de estilos. Posteriormente llama al método
StyleSheet.setStyle()
, que añade el nuevo estilo a la hoja de estilos con el nombre ".darkred". Por último, aplica el formato de la hoja de estilos asignando el objeto StyleSheet a la propiedad
styleSheet
.
Para que los estilos CSS surtan efecto, la hoja de estilos debe aplicarse al objeto TextField antes de establecer la propiedad
htmlText
.
Nota: por diseño, los campos de texto con hojas de estilos no se pueden editar. Si se dispone de un campo de entrada de texto y se le asigna una hoja de estilos, el campo muestra las propiedades de la hoja de estilos, pero el campo de texto no permitirá a los usuarios escribir texto nuevo en él. Asimismo, las siguientes API de ActionScript no se pueden utilizar en un campo de texto con una hoja de estilos asignada:
-
Método
TextField.replaceText()
-
Método
TextField.replaceSelectedText()
-
Propiedad
TextField.defaultTextFormat
-
Método
TextField.setTextFormat()
Si se ha asignado una hoja de estilos a un campo de texto, pero después se establece la propiedad
TextField.styleSheet
con el valor
null
, el contenido de las propiedades
TextField.text
y
TextField.htmlText
añade etiquetas y atributos a su contenido para incorporar el formato de la hoja de estilos asignada anteriormente. Para conservar la propiedad
htmlText
original, debe guardarse en una variable antes de establecer la hoja de estilos en
null
.