Markera och ändra text

Flash Player 9 och senare, Adobe AIR 1.0 och senare

Du kan markera dynamisk text eller inmatningstext. Eftersom egenskaperna för textmarkering och metoderna för klassen TextField använder indexpositioner för att ange textintervallet som ska ändras, kan du programmässigt markera dynamisk text eller inmatningstext även om du inte känner till innehållet.

Obs! Om du väljer markeringsalternativet för ett statiskt textfält i Flash Professional kommer textfältet som exporteras och placeras i visningslistan att vara ett vanligt dynamiskt textfält.

Markera text

Egenskapen flash.text.TextField.selectable är true som standard och du kan programmässigt markera texten med metoden setSelection().

Du kan till exempel ange att en viss text i ett textfält ska markeras när användaren klickar på textfältet:

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

Om du vill att text i ett textfält ska markeras när texten visas kan du skapa en händelsehanterarfunktion som anropas när textfältet läggs till i visningslistan.

Hämta användarmarkerad text

TextField-egenskaperna selectionBeginIndex och selectionEndIndex, som är ”skrivskyddade” så att de inte kan ställas in att programmässigt markera text, kan användas för att hämta det som användaren har markerat. Textinmatningsfält kan även använda egenskapen caretIndex.

Koden nedan spårar t.ex. indexvärdena för användarmarkerad text:

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

Du kan använda ett urval av egenskaper för TextFormat-objekt när du vill ändra den markerade textens utseende. Mer information om att använda en uppsättning TextFormat-egenskaper för markerad text finns i Formatera textintervall i ett textfält.