Дострочное пересдача экзамена
|
Проверка и форматирование данных
Обработка ошибок
В разных проектах требуются различные решения по обработке ошибок, обнаруженных в процессе проверки данных. Иногда достаточно использовать графический индикатор (что-нибудь вроде красного Х рядом с полем, содержащим ошибку), в других случаях лучше вывести текстовое сообщение.
Обычно обработка ошибки включается непосредственно в условный оператор внутри процедуры проверки. Вот, например:
if (dataValid) { // выполнить действия } else { // выполнить действие, сообщающее об ошибке }
Обработка ошибок – самая важная часть процесса проверки; поэтому о том, как именно будут обрабатываться ошибки в конкретном проекте или ситуации, следует подумать заранее – до того, как программировать что-либо.
В этом упражнении мы с вами "заложим фундамент" для обработки ошибок в нашем проекте.
- Откройте файл validate1.fla из папки Lesson13/Assets.
Этот проект состоит из двух сцен: Registration и Confirm. Сценой Confirm мы займемся в следующем упражнении, а сейчас сосредоточимся на сцене Registration, которая содержит форму для заполнения пользователем – введенные в нее данные нужно будет проверять. Эта сцена состоит из четырех слоев, названных в соответствии с их содержимым. Слой Background содержит общее графическое оформление сцены, за исключением кнопок, которые находятся в слое Buttons. Слой Text Fields содержит пять текстовых полей. Четыре из них расположены поверх рисованных прямоугольников, показывающих области для ввода. Эти поля называются (сверху вниз) name, email, state и zip. Как вы уже поняли, эти поля относятся к типу Input Text – в них пользователь будет вводить информацию. Справа от этих текстовых полей находится более крупное текстовое поле; оно имеет имя errorLog. Это многострочное динамич еское текстовое поле; в нем будут отображаться ошибки, обнаруженные в процессе проверки. Если вы откроете инспектор Параметры, то сможете увидеть, что для этого поля включена опция HTML. Тем самым мы дали Flash указание интерпретировать текст, передаваемый в это поле, как код HTML, а не выводить все подряд.
- Откройте панель Действия, выделите кадр 1 слоя Actions и введите такой скрипт:
stop (); errors = new Array();
Первое действие останавливает воспроизведение фильма на кадре 1 до получения дальнейших инструкций.
Второе действие создает массив под именем errors – он будет содержать сообщения об ошибках, которые нужно будет отобразить как результат процесса проверки данных.
- В конец текущего скрипта добавьте описание функции:
function clearForm() { name.text = ""; email.text = ""; state.text = ""; zip.text = ""; errorLog.text = ""; errors.length = 0; }
При вызове этой функции значения элементов сцены – текстовых полей для ввода и поля errorLog – будут сбрасываться в изначальное состояние. Также будут удалены из массива errors все имеющиеся сообщения об ошибках.
- Выделите кнопку Clear в нижней части экрана и введите в панели Действия такой скрипт:
on (release) { clearForm(); }
Этот скрипт при нажатии кнопки Clear будет вызывать функцию clearForm(), которую мы только что описали.
- Сохраните файл как validate2.fla.
В этом уроке мы еще продолжим работу с этим файлом. В этом упражнении наиболее важным аспектом было создание массива errors – он будет играть очень важную роль в нашем приложении, вернее, в том, как будут обрабатываться ошибки, обнаруженные в процессе проверки.