Sélection et manipulation de texte

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Vous pouvez sélectionner du texte, qu’il soit dynamique ou saisi. Les propriétés et méthodes de sélection de texte de la classe TextField utilisent des positions d’index pour déterminer l’étendue du texte à manipuler. Vous pouvez donc programmer la sélection du texte saisi ou dynamique, même si vous n’en connaissez pas le contenu.

Remarque : si vous choisissez l’option sélectionnable associée à un champ de texte statique dans Flash Professional, le champ de texte exporté et placé dans la liste d’affichage est un champ de texte dynamique normal.

Sélection du texte

La propriété flash.text.TextField.selectable a la valeur true par défaut. Vous pouvez en outre sélectionner du texte par code à l’aide de la méthode setSelection().

Par exemple, pour sélectionner un texte spécifique dans un champ de texte lorsque l’utilisateur clique dans ce dernier :

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 même, pour que le texte d’un champ de texte soit sélectionné dès son affichage initial, créez une fonction de gestion d’événement qui sera appelée lorsque le champ de texte sera ajouté à la liste d’affichage.

Capture du texte sélectionné par l’utilisateur

Les propriétés selectionBeginIndex et selectionEndIndex de TextField, qui sont en lecture seule (et ne peuvent donc pas être utilisées à l’aide de code pour sélectionner du texte), permettent également de capturer la sélection actuelle effectuée par l’utilisateur. Par ailleurs, les champs de texte saisis peuvent utiliser la propriété caretIndex.

Par exemple, ce code renvoie les valeurs d’index du texte sélectionné par l’utilisateur :

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

Vous pouvez également appliquer un ensemble de propriétés de l’objet TextFormat à la sélection pour modifier l’aspect du texte. Pour plus d’informations sur l’application d’un ensemble de propriétés TextFormat au texte sélectionné, voir Formatage de plages de texte au sein d’un champ de texte.