Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материал. часть2 / Розенцвейг_Adobe_Flash_Создание аркад, головоломок и других игр с помощью ActionScript.rtf
Скачиваний:
52
Добавлен:
11.02.2016
Размер:
9.87 Mб
Скачать

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

В сущности «волшебство» данного ролика создается в сценарии Action Script кнопки. Как было сказано выше, сценарий задает переход ролика ко второму кадру и запускает анимацию. Это фактически последнее важное событие. Перед этим генерируется ответ, который помещается в текстовую область.

Так как ответ активизируется щелчком по кнопке, весь код необходимо поместить в сценарий, назначенный кнопке. Такой сценарий всегда начинается с оператора on, далее следует описание реакции на событие. Одним из часто используемых событий является событие release (нажатие кнопки).

Вначале сценарий создает массив и заполняет его списком ответов. Для этого существует множество способов. Один из них приведен ниже:

responses = new Array(«Yes», «No», «Ask again later»,"It is

certain", "Doubtful", "Probably", "The answer is unclear","Of

course not!", "Certainly!", "It looks positive", "It looks

negative");

Это наиболее короткий способ создания массива и его одновременного заполнения. Однако он выглядит немного беспорядочно, так как текст переносится с одной строки на другую. Приведем другой способ:

responses = new Array();

responses[0] = "Yes";

responses[1] = "No";

responses[2] = "Ask again later";

responses[3] = "It is certain";

responses[4] = "It is certain";

responses[5] = "Doubtful";

responses[6] = "Probably";

responses[7] = "The answer is unclear";

responses[8] = "Of course not!";

responses[9] = "Certainly!";

responses[10] = "It looks positive";

responses[11] = "It looks negative";

Этот способ является более аккуратным, в нем каждый ответ располагается на отдельной строке. Вы можете сразу увидеть, из каких элементов он состоит. Однако здесь вам придется в каждой строке вводить номер элемента в скобках. В случае ошибки вы можете пропустить очередной ответ или оставить место пустым. Поэтому лучше пользоваться третьим способом:

responses = new Array();

responses.push("Yes");

responses.push("No");

responses.push("Ask again later");

responses.push("It is certain");

responses.push("Doubtful") ;

responses.push("Probably");

responses.push("The answer is unclear");

responses.push("0f course not!");

responses.push("Certainly!");

responses.push("It looks positive");

responses.push("It looks negative");

При помощи команды push ответы добавляются в массив друг за другом. Это более корректный и наглядный способ, который к тому же позволяет без труда добавлять новые ответы или удалять существующие.

Примечание

Применение функции push – наиболее быстрый и легкий способ добавить элемент в массив. Вы можете добавлять более одного элемента, задавая столько параметров в функции push, сколько элементов хотите добавить. Данная команда может быть одновременно использована и как функция для определения размера массива, поскольку возвращает новый размер массива. Например, newLengthOf Array = myArray.push("Gary", "Debby").

После того как массив будет заполнен возможными ответами, вам необходимо просто выбрать один из них наугад. Число элементов массива определяется при помощи параметра length. Функция Math.random позволяет выбрать случайный номер, соответствующий тому или иному элементу массива. Более подробно о функции Math.random рассказано в разделе «Случайность и эффект старого кино» главы 5.

Выбранное случайное число используется для определения текста ответа, который помещается в текстовую область. Не забудьте установить для текстовой области свойство Dynamic Text и задать имя переменной, в данном случае, fortune. Панель Properties будет выглядеть, как показано на рис. 6.5.

Рисунок 6.5. В панели Properties задается динамическое свойство текста и его связь с переменной fortune

Ниже приведен полный код кнопки. После того как текст будет задан, ролик переходит к кадру 2 и запускает анимацию. Текстовая область не видна до кадра 23.

on (release) {

// Создаем список возможных ответов.

responses = new Array();

responses.push("Yes");

responses.push("No");

responses.push("Ask again later");

responses.push("It is certain");

responses.push("Doubtful");

responses.push("Probably");

responses.push("The answer is unclear");

responses.push("Of course not!");

responses.push("Certainly!");

responses.push("It looks positive");

responses.push("It looks negative");

// Узнаем число ответов.

n = responses.length;

// Выбираем случайный ответ.

a = Int(Math.random()*n);

// Помещаем ответ в текстовую область.

fortune = responses[r];

// Запускаем дальнейшую анимацию.

gotoAndPlay(2);

}

Примечание

Для перемещения по flash‑ролику будут использоваться две команды: gotoAndPlay и gotoAndStop. Разница между ними состоит в том, что вторая команда задает переход ролика или клипа к определенному кадру или метке, но не запускает выполнения какого‑либо кода или воспроизведения какой‑либо анимации. В отличие от нее команда gotoAndPlay задает выполнение кода и продолжение анимации. Если вы хотите запустить выполнение кода какого‑либо кадра, но не желаете переходить к следующему после него, используйте команду gotoAndPlay и включите в кадр команду stop.

В конце анимации в центре хрустального шара появляется текст (рис. 6.6).

Рисунок 6.6. В конце анимации на несколько секунд появляется ответ, затем ролик вновь возвращается в начало

Соседние файлы в папке материал. часть2