Викторина во Flash
Когда пользователь щелкает по одной из четырех кнопок, вызывается функция selectAnswer, которой передается номер выбранного ответа (от 0 до 3). Если эта величина равна correctAnswer, звучит сигнал правильного ответа и увеличивается значение numRight. В противном случае воспроизводится сигнал неверного ответа. В любом случае увеличивается значение переменной guestionNum и отображается следующий вопрос.
function
selectAnswer(n) {
// Добавляем очко, если ответ правильный,
if
(n
=
=
correctAnswer) {
triggerSound(
"right"
);
numRight
+
+
;
}
else
{
triggerSound(
"wrong"
);
}
// Отображаем следующий вопрос.
questionNum
+
+
;
displayQuestion();
}
Функция triggersound проста, но очень полезна во многих игровых ситуациях. Ее назначение – проигрывать звук, сопровождающий правильный ответ.
function
triggerSoundfsoundName) {
// Проигрываем звук,
soundfx.stop();
soundfx
=
new
Sound();
soundfx.attachSoundfsoundName);
soundfx.start();
}
Все это касается сценария основной временной шкалы. Однако есть еще два важных маленьких сценария, прикрепленных к другим элементам на рабочем поле. Первый прикреплен к каждому текстовому клипу. Он проверяет, находится ли клип правее положения xstop и, если это так, перемешает его дальше влево. В результате клип продолжает двигаться влево до тех пор, пока его положение не совпадет со значением переменной xstop. Следовательно, если клип располагается справа от экрана, с помощью функции animatein вопрос "въезжает" на экран.
onClipEvent(enterFrame) {
if
(_x !
=
xstop)
_x
-
=
20
;
}
К каждой кнопке также прикреплен короткий сценарий, который при щелчке по ней вызывает функцию selectAnswer и передает ей значение от 0 до 3. Сценарий следующий:
on
(release) {
selectAnswer(
0
);
}
Для других кнопок вместо 0 будет указано либо 1, либо 2, либо 3.
К сведению
Вам понадобятся два звука, один с именем "right", а другой – "wrong". Также потребуется кнопка "continue", похожая на изображенную на рис. 12.3. Если у вас есть вопросы по работе программы, просмотрите ролик Flashquiz.fla.
Другие возможности
Хотя цель игры заключается в отображении только 10 вопросов, ни одна строчка кода не ограничивает их число. Можно запросить большее или меньшее количество вопросов из файла Flashquiz.txt.
Вместе с выводом строки пользователю можно показывать некое сообщение. Например, при отображении строчки "8 out of 10" можно подбодрить пользователя следующим образом: "You know your planets!" (Вы знаете планеты!), а при двух не правильных ответах из 10 будет выводиться сообщение "Go back to school" (Снова идите в школу).