В этом уроке мы с вами создадим приложение, включающее форму, требующую от пользователя ввести информацию. Введенные данные будут проверены, и если все правильно, на экране отобразится страница подтверждения – традиционная благодарность пользователю за предоставление информации.
В этом уроке:
Наша форма регистрации некоего (фиктивного) программного продукта позволит получать информацию от пользователя, проверять данные и выдавать сообщения об обнаруженных ошибках.
На выполнение этого урока требуется примерно два часа.
Файлы-носители:
Нет
Стартовые файлы:
Lesson13/Assets/validate1.fla Lesson13/Assets/flashWriter1.fla
Законченные проекты:
validate7.fla flashWriter3.fla
Мы с вами каждый день что-то, да проверяем – начиная с порядка слов в предложении (чтобы оно было построено правильно) и заканчивая сдачей в магазине. Так что разъяснять тут особенно нечего. Возьмем для примера такой вот телефонный номер: 555-34567.
Скорее всего, вы быстро поймете, что номер этот неверный. Ваш мозг, анализируя номер, обнаружит, что он состоит из восьми цифр. Сравнивая этот факт с известным ему правилом – "городские телефонные номера состоят из семи цифр", вам мозг сделает вывод, правильный ли это номер (истинный) или неправильный (ложный). Если номер правильный, значит, по нему можно позвонить. Если же номер неправильный, мозг выдаст вам сообщение об ошибке – что-нибудь вроде: "Этот номер неверный. Нужно узнать правильный, и тогда уже звонить."
Если представить процесс проверки по пунктам, получится примерно следующее:
Мы будем называть этот процесс в ActionScript процедурой сверки. Ваш мозг анализирует данные на лету; в ActionScript процедура сверки тоже займет долю секунды.
Необходимость проверки данных во Flash-приложениях обычно возникает там, где от пользователя требуется ввод информации в текстовые поля – это, например, различные формы (имя, адрес, номер телефона и т.п.), пароли, вопросы викторин, карточки заказов электронной коммерции (количество, размер, цвет и т.п.).
Процедуру проверки можно представить как программную мини-машину внутри проекта, которая проверяет полученные данные и поступает соответствующим образом, в зависимости от того, верными ли оказались данные или нет. В большинстве своем процедуры сверки представляют собой функции, построенные на условном операторе ( if ).
Обычно процедуры сверки подразделяются на несколько самостоятельных функций – по одной для каждого типа проверяемых данных (например, одна функция для строк, одна для чисел и т.д.). Таким образом можно единожды написать функцию и затем использовать ее в любом месте проекта, избежав необходимости писать процедуру сверки везде, где возникает необходимость проверки данных.
Функции процедур сверки могут быть двух основных типов:
Рассмотрим каждый из этих видов подробнее.
Процедура сверки без параметров обычно применяется просто для проверки определенного элемента данных. Допустим, нужно создать процедуру для проверки семизначного телефонного номера (состоящего из девяти символов: семи цифр и двух дефисов [-]), вводимого пользователем в текстовое поле с именем telephone. Структура такой функции будет выглядеть примерно так:
function validateTelephone () { if (telephone.length == 9) { // номер правильный, выполняемые действия } else { // номер неправильный, выполняемые действия } }
Эта процедура способна проверять данные только в текстовом поле telephone, поскольку имя поля жестко запрограммировано в описании функции. Теперь взгляните, насколько более гибкой, универсальной может стать эта функция, если будет принимать пару аргументов:
function validateTelephone (lookForAreaCode, pNumber) { if (lookForAreaCode == true && pNumber.length == 13) { message.text = "Это правильный десятизначный телефонный номер"; } else if (lookForAreaCode == false && pNumber.length == 9) { message.text = "Это правильный семизначный телефонный номер"; } } else { message.text = "Это неправильный телефонный номер"; } }
При вызове этой функции сверки ей передаются два параметра: lookForAreaCode имеет значение true либо false и показывает, присутствует ли в телефонном номере код города; pNumber представляет собой сам проверяемый номер. Если в момент вызова функции параметр lookForAreaCode имеет значение true, то переданный функции телефонный номер ( pNumber ) считается верным только в том случае, если он десятизначный. Если же lookForAreaCode равно false, то верным будет считаться только семизначный номер.
Сам вызов процедуры проверки будет выглядеть, например, так:
validateTelephone(true, 812-555-12-34);
В результате обработки этого вызова в текстовом поле message будет выведено сообщение: "Это правильный десятизначный телефонный номер".
Совет Из предыдущих уроков вы должны помнить, что в качестве параметров функции могут указываться не только конкретные значения, но и переменные. Так, в приведенном примере при вызове функции в качестве второго параметра можно сослаться на соответствующее свойство текстового поля ( textField.text ).
Таким образом, процедуры проверки, принимающие аргументы, являются более универсальными, поскольку одна и та же процедура может использоваться для проверки различных схожих данных.
В процессе проверки данных важную роль играют условные операторы, ведь сам этот процесс представляет собой не что иное, как проверку соответствия введенных данных определенным условиям. Какими же могут быть условия для проверки? Наиболее часто используют следующие.
Зачастую в процедурах проверки используют несколько условных операторов, проверяющих данные на соответствие нескольким различным условиям. Все эти условия мы применим и подробно обсудим в последующих упражнениях.