Руководство по actionscript. часть 5, стр. 135
Ввод через текстовые поля
Текстовые поля могут получать разнообразные виды пользовательского ввода, включая ввод и выделение текста, активизацию гипертекстовой ссылки, фокус ввода с клавиатуры, прокрутку и взаимодействие с мышью. В этом разделе мы познакомимся
с вводом, выделением текста и гипертекстовыми ссылками. Информацию о фокусе ввода с клавиатуры, прокрутке и взаимодействию с мышью можно найти в гл. 22.
Ввод текста
Способность каждого текстового поля получать пользовательский ввод определяется значением переменной type этого поля. По умолчанию для текстовых полей, создаваемых с помощью кода на языке ActionScript, переменной экземпляра type присваивается значение TextFieldType. DYNAMIC — это значит, что текст может изменяться с помощью кода на языке ActionScript, при этом пользователь не может вносить изменения в текст. Чтобы текстовое поле могло получать пользовательский ввод, мы должны присвоить переменной type значение TextFieldType. INPUT, как показано в следующем коде:
var t:TextField = new TextField( ); t. type = TextFieldType. INPUT;
Когда переменной type объекта TextField присвоено значение TextFieldType. INPUT, пользователь может добавлять или удалять текст из этого текстового поля. Любые изменения, вносимые пользователем, автоматически отражаются переменными text и htmlText.
Чтобы получать уведомления о внесении пользователем изменений в текстовое поле, мы можем зарегистрировать в этом текстовом поле приемники для событий TextEvent. TEXT_INPUT и Event. CHANGE. Диспетчеризация события TextEvent. TEXT INPUT происходит в том случае, когда пользователь пытается изменить текст в текстовом поле, перед тем как будут обновлены значения переменных text и htmlText. Диспетчеризация события Event. CHANGE происходит после того, как в ответ на пользовательский ввод будут обновлены значения переменных text и htmlText. Подробную информацию по событиям TextEvent. TEXT_INPUT и Event. CHANGE можно найти в гл. 22.
По умолчанию пользователям не разрешается вводить разрывы строк в текстовые поля. Чтобы разрешить это (например, в результате нажатия клавиши Enter), присвойте переменной multiline значение true, как показано в следующем коде:
var t:TextField = new TextFi el d( ): t. type = TextFieldType. INPUT; t. multiline = true;
Чтобы ограничить набор символов, которые пользователь может вводить в текстовое поле, используйте переменную экземпляра restrict класса TextField. Например, следующее текстовое поле позволяет вводить только цифры, что может потребоваться для поля ввода номера кредитной карты:
var t:TextField = new TextFi el d( );
t. width = 200;
t. height = 20:
t. border = true;
t. background = true;
t. type = TextFieldType. INPUT;
t. restrict = «0-9″;
Чтобы ограничить количество символов, которое пользователь может ввести в текстовое поле, используйте переменную экземпляра maxChars класса TextField. Например, следующее текстовое поле позволяет ввести только восемь символов, что может потребоваться для поля ввода имени на форме регистрации:
var t:TextField = new TextField( ):
t. width = 100:
t. height = 20:
t. border = true:
t. background = true:
t. type = TextFieldType. INPUT:
t. maxChars = 8;
Для сокрытия всех вводимых символов с целью защиты экрана используйте переменную экземпляра displayAsPassword класса TextField. Когда переменной displayAsPas sword присвоено значение true, все символы отображаются в виде звездочек (*). Например, слова «hi there» отображаются в виде «********>>. Это позволяет пользователю вводить текст, не беспокоясь о том, что посторонний человек сможет его увидеть. Следующий код демонстрирует текстовое поле, которое скрывает символы, что может потребоваться для поля ввода пароля на форме регистрации:
var t:TextFi eld = new TextField( );
t. width = 100;
t. height = 20;
t. border = true;
t. background = true;
t. type = TextFieldType. INPUT;
t. displayAsPassword = true;
Форматирование пользовательского ввода. По умолчанию новый текст, вводимый пользователем, автоматически принимает форматирование символа, находящегося перед точкой вставки, или символа, находящегося в позиции 0, если новый текст добавляется перед этой позицией. Если поле было пустым, новый текст форматируется в соответствии с используемым по умолчанию форматом данного поля (который задается через переменную def aultTextFormat, как было рассмотрено ранее в разд. «Форматирование по умолчанию для текстовых полей» разд. «Форматирование текстовых полей»).