Выделение и обработка текста

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Динамический или вводимый текст может быть выделен. Свойства и методы выделения текста в классе TextField используют позиции индекса для выбора нужного диапазона текста, поэтому динамический или вводимый текст можно выделить с помощью кода, даже если содержимое поля неизвестно.

Примечание. Если в инструменте Flash Professional для статического текстового поля выбран параметр «С возможностью выделения», то текстовое поле, экспортированное и помещенное в список отображения, является обычным динамический текстовым полем.

Выделение текста

Свойство flash.text.TextField.selectable по умолчанию имеет значение true . Текст можно выделить с помощью кода, используя метод setSelection() .

Например, можно ввести определенный текст в поле, который будет выделяться, когда пользователь щелкает текстовое поле:

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

Подобным образом, если требуется, чтобы текст в поле выделялся, то сразу после появления текста на экране следует создать функцию обработчика событий, вызываемую при добавлении текстового поля в список отображения.

Захват текста, выделенного пользователем

Свойства selectionBeginIndex и selectionEndIndex TextField доступны только для чтения, поэтому их нельзя использовать для программного выделения текста. Они служат для захвата текущего фрагмента, выделенного пользователем. Кроме того, поля ввода текста могут использовать свойство caretIndex .

Например, следующий код отслеживает значения индекса для текста, выделенного пользователем.

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

Для изменения внешнего вида текста к выделенному фрагменту можно применить коллекцию свойств объекта TextFormat. Дополнительные сведения о применении набора свойств TextFormat к выделенному тексту см. в разделе Форматирование диапазонов текста в текстовом поле .