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
.
|
|
|