Selezione ed elaborazione del testo

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

È possibile selezionare il testo dinamico o di input. Dal momento che le proprietà e i metodi di selezione del testo della classe TextField utilizzano le posizioni di indice per impostare l'intervallo di testo da elaborare, è possibile selezionare a livello di codice il testo dinamico o di input anche se non se ne conosce il contenuto.

Nota: in Flash Professional, se scegliete l'opzione selezionabile su un campo di testo statico, il campo di testo che viene esportato e posizionato nell'elenco di visualizzazione è un campo di testo normale dinamico.

Selezione del testo

La proprietà flash.text.TextField.selectable è true per impostazione predefinita ed è possibile selezionare a livello di codice il testo mediante il metodo setSelection().

Ad esempio, è possibile impostare un testo specifico all'interno di un campo di testo che è possibile selezionare quando l'utente fa clic sul campo di testo:

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

In modo analogo, se si desidera che il testo all'interno di un campo di testo venga selezionato quando il testo viene inizialmente visualizzato, creare una funzione di gestore di eventi che viene chiamata non appena il campo di testo viene aggiunto all'elenco di visualizzazione.

Rilevamento del testo selezionato dall'utente

Le proprietà selectionBeginIndex e selectionEndIndex della classe TextField (che sono di sola lettura e non possono essere impostate per selezionare il testo a livello di codice) possono essere utilizzate anche per acquisire ciò che l'utente ha selezionato. Inoltre, i campi di testo di input possono utilizzare la proprietà caretIndex.

Il codice seguente, ad esempio, traccia i valori di indice del testo selezionato dall'utente:

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

Potete applicare alla selezione una raccolta di proprietà di oggetto TextFormat per modificare l'aspetto del testo. Per ulteriori informazioni sull'applicazione di una raccolta di proprietà TextFormat al testo selezionato, consultate Formattazione di intervalli di testo all'interno di un campo di testo.