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