Давайте напишем простейшее приложение, которое будет собирать некоторые данные о пользователе и обрабатывать их. Сделаем так, чтобы оно выдавало пользователю приветствие, основываясь на этих данных. Короче говоря, это будет слегка усложненная версия приложения, уже рассмотренного нами в этой главе.
Создадим новый документ
Flash и поместим на рабочий лист три поля ввода, раскрывающийся список, флажок и кнопку. Поместим также текстовые надписи, поясняющие назначение этих элементов управления.
Пример бланка (только он должен быть сделан во
Flash)
Дадим элементам управления следующие имена:
- первое поле ввода - txtName1;
- второе поле ввода - txtName2;
- раскрывающийся список - cboGender;
- флажок - chkSendMail;
- третье поле ввода - txtAddress;
- кнопка - btnOK.
Теперь назначим раскрывающемуся списку такие значения параметров:
- Row Count - 2;
- Labels - "муж"; и "жен";
- Data - "m" и "f".
После этого назначим значения параметров для флажка:
- Label - "Выслать письмо-подтверждение";
- Initial Value - true;
- Change Handler - "onSendMailChange".
И, напоследок, назначим значения параметров для кнопки:
- Label - "отправить";
- Change Handler - "onOKCiick".
Закончив с формой для ввода данных, приступим к созданию приветствия. Приветствие будет находиться во втором кадре фильма. Создадим его и поместим на рабочий лист динамический текстовый блок по имени txtoutput. Зададим ему такие размеры, чтобы он занимал большую часть рабочего листа.
Теперь можно заняться сценариями. Все сценарии, используемые в этом приложении, будут привязаны к первому кадру фильма. Мы рассмотрим их по очереди.
Прежде всего, нам нужно определиться, где хранить данные, введенные пользователем в форму. Конечно, их можно поместить в переменные, но в этом случае данные не будут представлять собой единого целого. Давайте создадим для их хранения особый объект, который будет являться экземпляром объекта object.
datastorage = new Object();
Это выражение создает экземпляр объекта object, который и послужит хранилищем наших данных.
Теперь напишем функцию onSendMaiichange, которая будет обрабатывать включение или отключение флажка chkSendMaii. Если флажок отключен, поле ввода txtAddress будет запрещено - ведь если пользователь не хочет получать от нас письмо, то и незачем спрашивать у него адрес.
function onSendMaiichange(sender) {
_root. txtAddress.setEnabled (_root. chkSendMaii. getValue () ) ;
}
Самая сложная функция - onOKCiick. В ее обязанности входит поместить данные из элементов управления в объект datastorage, перейти на второй кадр, сформировать текст приветствия и поместить его в динамический текстовый блок txtoutput.
function onOKClick(sender) {
with (datastorage). {
name1 = _root.txtNamel.text;
name2 = _root.txtName2.text;
gender = _root.cboGender.getValue();
sendMail = _root.chkSendMail.getValue();
address = __root.txtAddress.text;
}
_root.nextFrame();
with (datastorage) {
txtOutput.text = "Здравствуйте, уважаем"
;
if (gender = "m") {
txtOutput.text += "ый ";
} else {
txtOutput.text += "ая ";
}
txtOutput.text += name1 + " " + name2 + "!";
if (sendMail) {
txtOutput.text += "На адрес '" + address + "' вам отправлено письмецо.";
Осталась мелочь. А именно, остановить фильм на первом кадре. _root. stop () ;
Теперь попробуйте запустить созданное приложение. Оно должно работать. А если не работает, значит, вы допустили какую-то ошибку. Тщательно проверьте код сценария и значения параметров всех элементов управления. И, самое главное, проверьте, задали ли вы имена элементам управления - это самая распространенная ошибка начинающих Flash-программистов