Викторина во Flash
Исходный файл: Flashquiz.fla.
Первые две игры, которые вы создадите в этой главе, построены по принципу вопросов и ответов. Первая игра – викторина с десятью вопросами, для каждого из которых дано четыре варианта ответа. Выбрав ответ, игрок видит, правильный он или нет.
На рис. 12.1 представлен основной кадр игры. Вопрос расположен вверху, а четыре варианта ответа – под ним. Пользователь должен щелкнуть по кнопке слева от ответа.
Рис. 12.1. В основном кадре игры показан вопрос и четыре варианта ответа
Задача проекта
Цель проекта – создать программу, которая будет получать вопросы из внешнего текстового файла, затем один за другим предлагать их игроку. Правильность/неправильность ответа обозначается звуковым сигналом.
После того как будут заданны десять вопросов, игра окончится. На экране должно отобразиться набранное количество очков. Запустите ролик Flashquiz.fla, и сыграйте несколько раундов, чтобы получить представление о работе программы.
Подход
Сначала нужно получить вопросы и ответы из текстового файла. Для этого можно воспользоваться объектом loadVars, который позволяет загружать данные из внешнего файла.
К сожалению, объект loadVars не позволяет обрабатывать массивы или объекты, а такая возможность нужна для рационального хранения набора вопросов и ответов. Однако можно прочесть один фрагмент текста, с помощью команды split разбить его на части и сохранить полученное в массиве. Таким образом вы получите из одного текстового блока десять вопросов, четыре варианта ответа на каждый вопрос и номер правильного ответа.
Как только вопросы будут расположены в массиве, сделать все остальное не составит труда. Текст каждого вопроса и ответов помешаются в соответствующих текстовых полях. Номер правильного ответа присваивается переменной. Затем программа ждет, когда игрок щелкнет по кнопке.
Каждая кнопка вызывает функцию, передавая ей соответствующий ответ. Если игрок щелкнул по правильной кнопке, проигрывается звуковой сигнал, и увеличивается число заработанных очков. В противном случае звучит сигнал неправильного ответа и задается следующий вопрос.
После того как будут заданы десять вопросов, игра переходит к кадру "game over", где отображается число набранных очков.
Чтобы сделать игру интереснее, вы можете использовать специальный эффект, благодаря чему текст вопроса будет "въезжать" на экран справа.