Os campos de texto contêm texto sem formatação ou formatado em HTML. O texto sem formatação está armazenado na propriedade
text
da instância e o texto HTML está armazenado na propriedade
htmlText
.
É possível usar declarações de estilo CSS para definir estilos de texto que você possa aplicar a diferentes campos de texto. As declarações de estilo CSS podem ser criadas no seu código de aplicativo ou carregada em um tempo de execução a partir de um arquivo CSS externo.
A classe flash.text.StyleSheet manipula os estilos das CSS. A classe StyleSheet reconhece um conjunto limitado de propriedades das CSS. Para obter uma lista detalhada das propriedades de estilo que a classe StyleSheet suporta, consulte a entrada flash.textStylesheet na Referência do ActionScript 3.0.
Como o exemplo a seguir mostra, é possível criar as CSS em seu código e aplicar esses estilos ao texto HTML usando um 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);
Depois de criar um objeto StyleSheet, o código de exemplo cria um objeto simples para manter um conjunto de propriedades de declaração de estilos. Em seguida, ele chama o método
StyleSheet.setStyle()
que adiciona o novo estilo à folha de estilos com o nome “.darkred”. Depois, ele aplica a formatação da folha de estilos atribuindo o objeto StyleSheet à propriedade
styleSheet
do TextField.
Para que os estilos das CSS tenham efeito, a folha de estilos deve ser aplicada ao objeto TextField antes que a propriedade
htmlText
seja definida.
Por design, um campo de texto com uma folha de estilos não é editável. Se tiver um campo de texto de entrada e atribuir uma folha de estilos a ele, o campo de texto apresentará as propriedades da folha de estilos, mas o campo texto não permitirá que usuários insiram o novo texto nele. Além disso, não será possível usar as APIs do ActionScript abaixo em um campo de texto caso uma folha de estilos esteja atribuída:
-
O método
TextField.replaceText()
-
O método
TextField.replaceSelectedText()
-
A propriedade
TextField.defaultTextFormat
-
O método
TextField.setTextFormat()
Se um campo de texto tiver uma folha de estilos atribuída a ele, no entanto, posteriormente, a propriedade
TextField.styleSheet
for definida como
null
, o conteúdo das propriedades
TextField.text
e
TextField.htmlText
adicionarão tags e atributos ao conteúdo para incorporar a formatação da folha de estilos anteriormente atribuída. A fim de preservar a propriedade
htmlText
original, salve-a em uma variável antes de definir a folha de estilos como
null
.