U kunt dynamische of invoertekst selecteren. Omdat de tekstselectie-eigenschappen en -methoden van de klasse TextField gebruik maken van de indexposities om het tekstbereik in te stellen dat moet worden gemanipuleerd, kunt u programmatisch dynamische of invoertekst selecteren, ook al kent u de inhoud niet.
Opmerking:
Wanneer u in Flash Professional de selecteerbare optie voor een statisch tekstveld kiest, is het geëxporteerde en in het weergaveoverzicht geplaatste tekstveld een normaal, dynamische tekstveld.
Tekst selecteren
De eigenschap
flash.text.TextField.selectable
is standaard
true
en u kunt programmatisch tekst selecteren met de methode
setSelection()
.
U kunt bijvoorbeeld binnen een tekstveld een specifieke tekst instellen die, als de gebruiker op het tekstveld klikt, moet worden geselecteerd:
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);
}
Op dezelfde wijze maakt u, als u wilt dat tekst in een tekstveld wordt geselecteerd wanneer de tekst voor het eerst wordt weergegeven, een gebeurtenishandlerfunctie die wordt aangeroepen wanneer het tekstveld wordt toegevoegd aan de weergavelijst.
Door de gebruiker selecteerde tekst vastleggen
De TextField-eigenschappen
selectionBeginIndex
en
selectionEndIndex
, die “alleen-lezen” zijn en dus niet kunnen worden ingesteld om programmatisch tekst te selecteren, kunnen worden gebruikt om vast te leggen wat de gebruiker op dat moment heeft geselecteerd. Daarnaast kunnen invoertekstvelden gebruik maken van de eigenschap
caretIndex
.
Met de volgende code worden bijvoorbeeld de indexwaarden van door de gebruiker geselecteerde tekst getraceerd:
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);
}
U kunt een collectie TextFormat-objecteigenschappen toepassen op de selectie om de tekstweergave te wijzigen. Zie
Tekstbereiken in een tekstveld opmaken
voor meer informatie over het toepassen van een collectie TextFormat-eigenschappen op geselecteerde tekst.
|
|
|