O texto estático só é criado no Flash Professional. Não é possível instanciar programaticamente texto estático usando ActionScript. O texto estático é útil quando o texto é pequeno e não pode ser alterado (como o texto dinâmico pode). Pense no texto estático como a um elemento gráfico (por exemplo, um círculo ou quadrado) desenhado no Palco, no Flash Professional. Embora o texto estático seja mais limitado que o texto dinâmico, o ActionScript 3.0 permite que você leia os valores da propriedade do texto estático usando a classe StaticText. É possível também usar a classe TextSnapshot para ler outros tipos de valores além do texto estático.
Acesso aos campos de texto estático com a classe StaticText
Normalmente, é possível usar a classe flash.text.StaticText no painel Ações do Flash Professional para interagir com uma instância de texto estática posicionada no Palco. Também é possível trabalhar nos arquivos do ActionScript que interagem com um arquivo SWF que contém texto estático. Em qualquer caso, é possível instanciar uma instância de texto estático de modo programático. O texto estático é criado no Flash Professional.
Para criar uma referência a um campo de texto estático existente, faça uma iteração nos itens na lista de exibição e atribua um variável. Por exemplo:
for (var i = 0; i < this.numChildren; i++) {
var displayitem:DisplayObject = this.getChildAt(i);
if (displayitem instanceof StaticText) {
trace("a static text field is item " + i + " on the display list");
var myFieldLabel:StaticText = StaticText(displayitem);
trace("and contains the text: " + myFieldLabel.text);
}
}
Depois de fazer referência a um campo de texto estático, é possível usar as propriedades desse campo no ActionScript 3.0. O código a seguir está anexado a um quadro na Linha de tempo e parte da premissa de que uma variável denominada
myFieldLabel
foi atribuída a uma referência a texto estático. Um campo de texto dinâmico, denominado
myField
, está posicionado em relação aos valores
x
e
y
de
myFieldLabel
e exibe o valor de
myFieldLabel
novamente.
var myField:TextField = new TextField();
addChild(myField);
myField.x = myFieldLabel.x;
myField.y = myFieldLabel.y + 20;
myField.autoSize = TextFieldAutoSize.LEFT;
myField.text = "and " + myFieldLabel.text
Uso da classe TextSnapshot
Se desejar trabalhar programaticamente com uma instância de texto estática existente, poderá usar a classe flash.text.TextSnapshot para trabalhar com a propriedade
textSnapshot
de um flash.display.DisplayObjectContainer. Em outras palavras, você cria uma instância do TextSnapshot da propriedade
DisplayObjectContainer.textSnapshot
É possível aplicar métodos a essa instância para recuperar valores ou selecionar partes do texto estático.
Por exemplo, coloque um campo de texto estático que contém o texto "Exemplo de TextSnapshot" no Palco. Adicione o ActionScript a seguir ao Quadro 1 da Linha de tempo:
var mySnap:TextSnapshot = this.textSnapshot;
var count:Number = mySnap.charCount;
mySnap.setSelected(0, 4, true);
mySnap.setSelected(1, 2, false);
var myText:String = mySnap.getSelectedText(false);
trace(myText);
A classe TextSnapshot será útil para obter texto dentre os campos de texto estático em um arquivo SWF carregado, caso você queira usar o texto como um valor em outra parte de um aplicativo.
|
|
|