Для того чтобы дать какому-либо текстовому блоку (а также кнопке или клипу) фокус ввода, нужно вызвать метод set Focus. В качестве единственного параметра этому методу передается путь в строковом виде:
Selection.setFocus("_root.txtName");
Selection.setFocus("_root.btnOK"); Чтобы снять фокус ввода со всех элементов управления, достаточно передать методу setFocus в качестве параметра значение null.
С помощью объекта selection мы можем получить позицию текстового курсора в поле ввода. Для этого достаточно вызвать не принимающий параметров метод get Caret index, который вернет нам номер символа, на котором стоит курсор. (Не стоит забывать, что нумерация символов начинается с нуля.) Если же ни одно поле ввода не имеет фокуса, возвращается значение - 1.
Методы getBeginindex и getEndindex возвращают номера соответственно начального и конечного символа выделенного в текстовом блоке фрагмента текста. Если ничего не выделено, также возвращается значение - 1.
Можно выделить нужный фрагмент текста, воспользовавшись методом setseiection. Первый параметр этого метода должен иметь значение, равное номеру первого символа выделяемого фрагмента, а второй параметр - значение, равное номеру последнего символа. Вот так:
Selection.setSelection(10, 30); Чтобы просто поставить текстовый курсор в требуемую позицию, нужно передать методу setseiection номер нужного символа и в первом, и во втором параметре:
Selection.setSelection(10, 10); Объект selection поддерживает одно-единственное событие onSetFocus, возникающее при перемещении фокуса ввода. Обработка этого события возможна только с помощью перехватчика. Например:
myListener = new Object();
myListener.onSetFocus = fOnSetFocus;
Selection.addListener(myListener); Это пример создания и привязки перехватчика к объекту selection. Функция fOnSetFocus выполняет собственно обработку события onSetFocus; определение этой функции было опущено.
Обработка нажатий клавиш клавиатуры
Для обработки нажатия клавиш клавиатуры служит объект Key. Его единственный экземпляр, также носящий имя Key, создается самим Flash.
Свойства и методы объекта Key
Два важнейших метода, которые обязательно понадобятся нам для обработки нажатий клавиш, - это методы getAscii и getcode. Первый метод возвращает код символа ASCII, который присвоен нажатой клавише. Второй метод возвращает так называемый виртуальный код нажатой клавиши - низкоуровневый код, позволяющий узнать, какая клавиша на клавиатуре была нажата. Оба эти метода не принимают параметров.
Вот пример выражений вызова этих методов:
codel = Key.getAscii() ; code2 = Key.getCode(); Код символа ASCII зависит от текущей кодировки. Коды символов кодировки Windows 1251 приведены в интерактивной справке Flash; там же приведены и виртуальные коды клавиш.
Еще один полезный метод объекта Key - метод isDown. Он принимает единственный параметр - виртуальный код клавиши - и возвращает значение true, если эта клавиша нажата. Например:
if (Key.isDown(Key.ENTER)) { . . . }
Приведенное выше выражение проверяет, была ли нажата клавиша <Enter>.