Seleção e manipulação de texto

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

É possível selecionar texto dinâmico ou de entrada. Como as propriedades e métodos de seleção de texto da classe TextField usam posições de indexação para definir o intervalo do texto a ser manipulado, é possível selecionar programaticamente o texto dinâmico ou de entrada mesmo quando o conteúdo é desconhecido.

Nota: No Flash Professional, se você escolher a opção selecionável em um campo de texto estático, o campo de texto a ser exportado e colocado na lista de exibição será um campo de texto regular, dinâmico.

Seleção de texto

A propriedade flash.text.TextField.selectable é true por padrão e é possível selecionar texto programaticamente usando o método setSelection() .

Por exemplo, é possível definir um texto específico dentro de um campo de texto para ser selecionado quando o usuário clicar no 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); 
}

De modo similar, para que o texto dentro de um campo de texto seja selecionado assim que o texto for inicialmente exibido, crie uma função do manipulador de eventos que seja chamada quando o campo de texto for adicionado à lista de exibição.

Captura de texto selecionado pelo usuário

As propriedades selectionBeginIndex e selectionEndIndex de TextField (que são “somente leitura” e, portanto, não podem ser definidas para selecionar texto de modo programático) podem ser usadas para capturar qualquer coisa que o usuário tenha selecionado atualmente. Adicionalmente, os campos de texto de entrada podem usar a propriedade caretIndex .

Por exemplo, o código a seguir controla os valores dos índices do texto selecionado pelo usuário:

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

É possível aplicar uma coleção das propriedades do objeto TextFormat para a seleção a fim de alterar a aparência do texto. Para obter mais informações sobre a aplicação de uma coleção de propriedades TextFormat para o texto selecionado, consulte Formatação de intervalos de texto dentro de um campo de texto .