Вход/Регистрация
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
вернуться

Розенцвейг Гэри

Шрифт:

Подход

Сначала нужно получить вопросы и ответы из текстового файла. Для этого можно воспользоваться объектом loadVars, который позволяет загружать данные из внешнего файла.

К сожалению, объект loadVars не позволяет обрабатывать массивы или объекты, а такая возможность нужна для рационального хранения набора вопросов и ответов. Однако можно прочесть один фрагмент текста, с помощью команды split разбить его на части и сохранить полученное в массиве. Таким образом вы получите из одного текстового блока десять вопросов, четыре варианта ответа на каждый вопрос и номер правильного ответа.

Как только вопросы будут расположены в массиве, сделать все остальное не составит труда. Текст каждого вопроса и ответов помещаются в соответствующих текстовых полях. Номер правильного ответа присваивается переменной. Затем программа ждет, когда игрок щелкнет по кнопке.

Каждая кнопка вызывает функцию, передавая ей соответствующий ответ. Если игрок щелкнул по правильной кнопке, проигрывается звуковой сигнал, и увеличивается число заработанных очков. В противном случае звучит сигнал неправильного ответа и задается следующий вопрос.

После того как будут заданы десять вопросов, игра переходит к кадру "game over", где отображается число набранных очков.

Чтобы сделать игру интереснее, вы можете использовать специальный эффект, благодаря чему текст вопроса будет "въезжать" на экран справа.

Подготовка ролика

Многое нужно определить до того, как начнется выполнение сценария. Первый кадр (рис. 12.2) – это «loading» (загрузка). Так как вопросы загружаются из внешнего текстового файла, прежде чем начать игру, надо убедиться, что все вопросы находятся на месте.

Рисунок 12.2. На экране отображается кадр «loading» до тех пор, пока не будут загружены все вопросы

После загрузки вопросов код ActionScript переводит игру ко второму кадру, помеченному «start game». В этом кадре даны указания для игры и показана кнопка (рис. 12.3).

Рисунок 12.3. Кадр «start game» виден, пока пользователь не щелкнет по кнопке начала игры

Основной кадр игры (рис. 12.1) – самый сложный. В нем находится текстовое поле для вопроса, четыре текстовых поля для ответов и маленькое текстовое поле для номера вопроса. Слева от ответов расположены четыре кнопки.

Каждое из пяти основных текстовых полей помечено в клипе словом "text". Один клип называется "question", остальным присвоены имена от "answerO" до "answer3". Так сделано для того, чтобы не создавать простые текстовые поля и иметь возможность перемещать клипы на рабочем поле (об этом эффекте будет рассказано далее).

Создание кода

Код этой игры невелик по объему, но, тем не менее, разделен на несколько фрагментов. В первом кадре находится код, загружающий вопросы из внешнего файла.

Сценарий начинается с создания нового объекта LoadVars. Этот объект с помощью своих свойств позволяет решать набор специфических задач, связанных с загрузкой переменных. Вы можете получать информацию о том, что данные были отправлены на сервер или загружены с сервера.

Поскольку вам нужен ответ от сервера, то изначально необязательно устанавливать какие-либо свойства объекта LoadVars. Подробнее мы рассмотрим эти приемы в главе 17 "Сложные приемы".

Метод load объекта LoadVars обращается к серверу и загружает данные.

...

Примечание

Метод load объекта LoadVars осуществляет загрузку, обращаясь к указанному URL. Файл данных должен иметь вид "имя переменной = данные". Например, в результате обращения к текстовому файлу myVariable=Hello переменной myVariable будет присвоено значение Hello. Поскольку обращение происходит к удаленному серверу, может пройти некоторое время между вызовом команды load и загрузкой данных.

Итак, в начале сценария создается новый объект loadQuestions. С помощью метода load он обращается к файлу Flashquiz.txt.

Свойство onLoad объекта LoadVars определяет функцию, которая вызывается, когда загрузка завершена. В этом случае будет вызвана функция initQuestions.

После выполнения команды LoadVars.load данные из текстового файла будут доступны к использованию ActionScript. Например, если переменной myProperty присвоено значение myValue, то обращение loadQuestions.myProperty вернет значение myValue.

stop;

// Загружаем вопросы.

loadQuestions = new LoadVars;

loadQuestions.load("flashquiz.txt");

// Вызываем initQuestions, когда загрузка окончена.

loadQuestions.onLoad = initQuestions;

Функция initQuestions преобразовывает текстовую строку в массив, состоящий из вопросов, ответов и номера правильного ответа для каждого вопроса. Вот как выглядит первая часть файла Flashquiz.txt. Первая строчка присваивает свойству topic текст «The Planets». С помощью обращения loadQuestions.topic сценарий получит доступ к этому значению и присвоит его переменной topic. Результат отобразится в динамическом текстовом поле.

  • Читать дальше
  • 1
  • ...
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: