Поле ввода (Text Input)
Поле ввода позволяет вводить и считывать значения. Поле ввода может использоваться для задания определенных параметров пользователем, как строка ввода пароля и т.д. Поле ввода содержит единственную строку.
Параметры компонента:
Параметр |
Значение |
text |
Текст, размещенный в поле ввода |
selected |
Признак активности поля ввода. Значение true (по умолчанию) соответствует активному полю ввода, false – поле ввода неактивно (пользователь не может изменить строку, размещенную в нем). |
enabled |
false – компонент запрещен к использованию, true – компонент активен (по умолчанию). В неактивном состоянии компонент подсвечивается серым цветом. |
visible |
false – компонент невидим, true – компонент является видимым |
maxChars |
максимальная длина строки, которая может быть размещена в поле ввода. Значение по умолчанию – 0 (неограниченная длина строки). |
displayAsPassword |
По умолчанию это свойство имеет значение false. Если выставить значение true, то поле ввода будет переведено в режим ввода пароля: какой символ не ввел бы пользователь с клавиатуры, в поле ввода он будет заменен символом «*», значение свойства text останется корректным. |
editable |
Признак того, что содержимое поля может быть изменено пользователем (true, по умолчанию). Чтобы пользователь не смог изменить содержимое поля ввода, данному свойству нужно задать значение false. |
restrict |
Строка, содержащая набор символов, которые могут быть введены в поле с клавиатуры. Однако в любом случае, программным способом можно занести любую строку в текстовое поле. Модно вводить диапазон значений через дефис. По умолчанию значение этого свойства null, то есть пользователь может ввести в поле ввода любой допустимый символ. |
Пример 1. По умолчанию масштаб слипа равен 1 (100%). На рабочем листе находится два поля ввода и кнопка «Изменить масштаб», при щелчке по которой значения масштаба по осям заменяются на те, которые ввел пользователь в поля. Проверка ошибочности ввода не ведется.
Клип, которому изменяется масштаб, имеет имя clip. Кнопка «Изменить масштаб» - это тоже клип с изображением кнопки и именем but. Поля ввода имеют имена scX и scY. При их создании в поля введены значения «1» (масштаб 100%). Рациональные значения вводятся через точку.
Текст программы очень прост:
but.addEventListener(MouseEvent.CLICK, butClick);
function butClick(_event : MouseEvent)
{
clip.scaleX = Number(scX.text);
clip.scaleY = Number(scY.text);
}
Вначале для клипа but добавляется прослушиватель щелчка кнопки мыши – функция butClick. В теле этой фунции мы изменяем масштаб клипа clip вдоль осей X и Y, используя значения, находящиеся в полях scX и scY соответственно.
scX.text – это текст, находящийся в поле scX. Чтобы трансформировать текст в строку, мы используем так называемое приведение типов: внутри скобок помещается значение, которое нужно преобразовать к другому типу (например, строка «0.2»), снаружи скобок мы указываем имя типа, к которому мы приводим значение в скобках (например, Number чтобы получить число 0.2).
Пример 2. Ввод пароля для запуска фильма. Фильм должен запускаться на воспроизведение только в том случае, если пользователь ввел верный пароль в поле ввода.
Здесь потребуется обработка события нажатия клавиши Enter в окне поля ввода. Событие это имеет название ENTER и уже не относится к классу MouseEvent, но к классу ComponentEvent. Чтобы возможно было обработать это событие, нужно в начале программы указать следующую директиву импорта:
import fl.events.ComponentEvent;
Класс ComponentEvent будет импортирован, и его можно будет использовать в скрипте.
Структура фильма будет следующей: основное его содержимое располагается начиная со второго кадра временной шкалы, в последнем каре фильма указано:
this.stop();
Это не даст пользователю вернуться на первый кадр фильма.
В первом кадре фильма находится экземпляр компонента TextInput, имеющий имя pass. Код, который располагается на первом кадре временной шкалы, следующий:
import fl.events.ComponentEvent;
this.stop();
pass.addEventListener(ComponentEvent.ENTER, enterPass);
function enterPass(_event : ComponentEvent)
{
if (pass.text == "QWERTY")
{
this.gotoAndPlay(2);
}
}
Вначале директивой import мы импортируем класс ComponentEvent в код программы, тем самым позволяя обрабатывать событие нажатия Enter в окне поля ввода.
Во второй строке останавливается воспроизведение основной временной шкалы. Далее к компоненту pass добавляется обработчик события ComponentEvent.ENTER – пользовательская функция enterPass. Обратите внимание, что параметр, передаваемый в эту функцию, имеет тот же тип, что и класс – носитель события (ComponentEvent).
Условный оператор выполняет сравнение строки, содержащейся в поле pass с заранее заданным паролем («QWERTY»). Если сравнение произошло успешно, то основная временная шкала начнет воспроизводиться начиная со второго кадра. Иначе никакое действие не будет выполнено.