Selección y manipulación de texto

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Se puede seleccionar texto dinámico o de entrada. Debido a que las propiedades y los métodos de selección de texto de la clase TextField utilizan posiciones de í­ndice para establecer el rango de texto que se va a manipular, se puede seleccionar mediante programación texto dinámico o de entrada aunque no se conozca su contenido.

Nota: en Flash Professional, si se elige la opción seleccionable en un campo de texto estático, el campo de texto que se exporta y se coloca en la lista de visualización es un campo de texto dinámico normal.

Selección de texto

El valor de la propiedad flash.text.TextField.selectable es true de forma predeterminada y se puede seleccionar texto mediante programación a través del método setSelection() .

Por ejemplo, se puede establecer texto especí­fico de un campo de texto que se debe seleccionar cuando el usuario haga clic en el campo de texto:

var myTextField:TextField = new TextField(); 
myTextField.text = "No matter where you click on this text field the TEXT IN ALL CAPS is selected."; 
myTextField.autoSize = TextFieldAutoSize.LEFT; 
addChild(myTextField); 
addEventListener(MouseEvent.CLICK, selectText); 
 
function selectText(event:MouseEvent):void 
{ 
    myTextField.setSelection(49, 65); 
}

Del mismo modo, si se desea que se seleccione texto de un campo como el texto que se mostrará inicialmente, se debe crear una función de controlador de eventos a la que se llama cuando se añade texto a la lista de visualización.

Captura de texto seleccionado por el usuario

Las propiedades selectionBeginIndex y selectionEndIndex de TextField, que son de "solo lectura" y por tanto no se pueden establecer para que seleccionen texto mediante programación, pueden utilizarse para capturar lo que el usuario haya seleccionado actualmente. Asimismo, los campos de entrada de texto pueden utilizar la propiedad caretIndex .

Por ejemplo, el código siguiente hace un seguimiento de los valores de índice de texto seleccionado por el usuario:

var myTextField:TextField = new TextField(); 
myTextField.text = "Please select the TEXT IN ALL CAPS to see the index values for the first and last letters."; 
myTextField.autoSize = TextFieldAutoSize.LEFT; 
addChild(myTextField); 
addEventListener(MouseEvent.MOUSE_UP, selectText); 
 
function selectText(event:MouseEvent):void 
{ 
    trace("First letter index position: " + myTextField.selectionBeginIndex); 
    trace("Last letter index position: " + myTextField.selectionEndIndex); 
}

Se puede aplicar una colección de propiedades de objeto TextFormat a la selección para modificar el aspecto del texto. Para obtener más información sobre la aplicación de una colección de propiedades de TextFormat a texto seleccionado, consulte Formato de rangos de texto en un campo de texto .