Trabajo con texto estático

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

El texto estático solo se crea en Flash Professional. No se puede crear texto estático mediante programación con ActionScript. El texto estático resulta útil si el texto es breve y no va a cambiar (a diferencia del texto dinámico). Se puede considerar que el texto estático es un tipo de elemento gráfico, como un círculo o un cuadrado, dibujado en el escenario de Flash Professional. Aunque el texto estático presenta más limitaciones que el texto dinámico, ActionScript 3.0 permite leer los valores de propiedades de texto estático mediante la clase flash.text.StaticText. También se puede utilizar la clase TextSnapshot para leer valores del texto estático.

Acceso a campos de texto estático mediante la clase StaticText

Generalmente, se usa la clase flash.text.StaticText en el panel Acciones de la herramienta de edición de Flash para interactuar con una instancia de texto estático colocada en el escenario. También se puede trabajar en archivos de ActionScript que interactúen con un archivo SWF que contenga texto estático. En cualquier caso, no se puede crear una instancia de texto estático mediante programación. El texto estático se crea en Flash Professional.

Para crear una referencia a un campo de texto estático, se pueden repetir los elementos de la lista de visualización y asignar una variable. Por ejemplo:

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); 
} 
}

Una vez que se tiene una referencia a un campo de texto estático, se pueden usar las propiedades de ese campo en ActionScript 3.0. El código siguiente se adjunta a un fotograma de la línea de tiempo y presupone que una variable denominada myFieldLabel está asignada a una referencia de texto estático. Un campo de texto dinámico denominado myField se coloca con respecto a los valores x e y de myFieldLabel y vuelve a mostrar el valor de myFieldLabel .

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 de la clase TextSnapshot

Si se desea trabajar mediante programación con una instancia de texto estático existente, se puede utilizar la clase flash.text.TextSnapshot para utilizar la propiedad textSnapshot de flash.display.DisplayObjectContainer. En otras palabras, se crea una instancia de TextSnapshot a partir de la propiedad DisplayObjectContainer.textSnapshot . Después se pueden aplicar métodos a esa instancia para recuperar valores o seleccionar partes del texto estático.

Por ejemplo, coloque en el escenario un campo de texto estático que contenga el texto "TextSnapshot Example". Añada el siguiente código ActionScript al fotograma 1 de la lí­nea de tiempo:

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); 

La clase TextSnapshot resulta útil para obtener el texto de campos de texto estático de un archivo SWF cargado, si se desea utilizar el texto como un valor en otra parte de una aplicación.