Волшебный хрустальный шар
Создание кода
В сущности "волшебство" данного ролика создается в сценарии 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
](
"Doubtful"
);
responses[
5
](
"Probably"
);
responses[
6
](
"The answer is unclear"
);
responses[
7
](
"Of course not!"
);
responses[
8
](
"Certainly!"
);
responses[
9
](
"It looks positive"
);
responses[
10
](
"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(
"Of 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