Эффект Alpha назван по аналогии с термином "alpha channel" (альфа-канал), который используется для описания изображений. Считается, что графическое изображение состоит из четырех каналов: красного, зеленого, синего и альфа. Первые три канала определяют цвет пикселов, последний – их прозрачность. Если значение альфа-канала равно 0, изображение совершенно прозрачно. Поэтому при установке свойства Alpha в значение 0 flash-элемент станет невидимым.
Даже если кнопка является совершенно прозрачной, она никуда не девается с рабочего поля. Поэтому кнопка полностью активна и реагирует на щелчок мышью. Мы описали один способ создания невидимой кнопки. Другой способ рассматривается в главе 14.
Когда пользователь щелкает по кнопке, ролик переходит к кадру 2 и продолжает воспроизведение. Воспроизведение анимации продолжается до конца ролика.
Вы увидите, что со 2-го по 22-й кадр анимация лап содержит промежуточные отображения. В кадре 20 запускается анимация слоя "Ball effect", и шар сверкает. Ролик целиком можно посмотреть на Web-сайте (файл Crystalball.fla).
Наиболее важное событие в данной анимации – появление второй текстовой области в кадре 23. Эта область содержит ответ на вопрос пользователя. Текст задается при щелчке по кнопке, но вплоть до кадра 23 он не виден.
Таким образом, ролик состоит из одного начального кадра, который ждет действия от пользователя, и ряда анимированных кадров, отображающих в ходе своего воспроизведения текст. После завершения анимации ролик возвращается к первому кадру и ждет следующего вопроса.
Создание кода
В сущности «волшебство» данного ролика создается в сценарии 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.
Читать дальше
Конец ознакомительного отрывка
Купить книгу