Чтение онлайн

на главную - закладки

Жанры

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

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

Шрифт:

На рис. 7.7 изображен пример использования ролика.

Рисунок 7.7. Программа рисования, в которой поработал художник

К сведению

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

Другие возможности

Вы можете усовершенствовать программу, добавив возможность выбора толщины линии по аналогии с цветами. Можно создать кнопку, которая будет определять переменную lineSize в клипе «actions».

Добавив в палитру белый цвет, вы дадите

пользователю возможность стирать уже нарисованное.

Музыкальный миксер

Исходный файл: Musicmixer.fla

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

Задача проекта

В данном разделе рассматривается создание игрушки, которая позволяла бы пользователю сочинять свои собственные музыкальные произведения, смешивая звуки барабанного боя, циклы басов и другие отдельные звуковые эффекты. При этом необходимо обеспечить возможность замены файлов, а также предусмотреть обратную связь с пользователем, чтобы он видел, какие музыкальные отрезки воспроизводятся. На рис. 7.8 показан интерфейс такого приложения.

Рисунок 7.8. Музыкальный миксер состоит из шести циклов барабанов, шести циклов с басами и шести отдельных звуковых эффектов

Подход

В приложении используется шесть циклов барабанного боя, шесть циклов басов и шесть отдельных звуковых эффектов. Одновременно может играть только один «барабанный» цикл, поэтому при выборе второго цикла необходимо отменить первый. Басы могут воспроизводиться одновременно. Отдельные звуки воспроизводятся один раз.

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

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

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

Основными элементами ролика являются 18 звуков. В примере Musicmixer.fla использовались звуки, созданные профессиональным композитором. Вам придется сочинить звуки самому, привлечь к этому друга или коллегу или позаимствовать музыку из любых других источников.

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

После импорта 18 звуков во Flash в диалоговом окне Symbol Linkage Properties (рис. 7.9) необходимо установить свойство Export for Action Script, а также задать идентификатор.

Рисунок 7.9. Настройки диалогового окна Symbol Linkage Properties определяют, каким образом звук будет включен во Flash-ролик

Необходимо создать три различных типа кнопок. В действительности они представляют собой не кнопки, а клипы. Поэтому, чтобы избежать путаницы, мы назовем их «переключателями». Переключатели содержат невидимые кнопки, реагирующие на щелчок мыши. Они состоят как минимум из двух кадров. Первый из них соответствует выключенному состоянию переключателя, остальные – включенному. Так как звуки барабанов и басов представляют собой повторяющиеся циклы, анимация этих двух переключателей воспроизводится непрерывно, пока не будет прекращена повторным щелчком мыши. В отличие от этого анимация переключателя отдельного звука воспроизводится один раз и затем возвращается к состоянию выключено. Состав анимационных последовательностей вы можете просмотреть на Web-сайте в файле Musicmixer.fla.

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

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

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

Самый простой сценарий – у переключателей отдельных звуков. Задача данного сценария – запустить воспроизведение звука и задать его переход к следующему кадру.

on (press) {

// Указываем, что надо проиграть из библиотеки звук,

// соответствующий выбранному клипу.

instanceSound = new Sound;

instanceSound.attachSound(this._name);

instanceSound.start;

// Начинаем анимацию, показывающую, что кнопка выбрана.

gotoAndPlay(2);

}

Обратите внимание, что имя звука описывается при помощи синтаксиса this._name. Это значит, что имя клипа будет являться и именем звука. Если клип называется «instance 1», код попытается воспроизвести звук с именем «instance 1». Первое имя «instance 1» соответствует имени клипа на рабочем поле, второе имя «instance 1» является именем соответствующего звука в библиотеке. Эта схема работает только в том случае, если имена полностью совпадают.

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

Анимация начинается после перехода клипа к следующему кадру. В конце анимации клип возвращается к первому кадру, а находящаяся в нем команда stop остановит его повторное воспроизведение.

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

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

on (press) {

// Проигрываем звук по названию клипа.

bassloop = new Sound;

bassloop.attachSound(this._name);

bassloop.start(0,9999);

// Начинаем анимацию.

gotoAndPlay(2);

}

Еще одно отличие между отдельными звуками и басами заключается в том, что цикл басов можно отключить. Для этого кнопке переключателя цикла басов начиная с кадра 2 необходимо назначить другой сценарий. Сценарий прекратит воспроизведение звука и вернет ролик к кадру 1.

on (press) {

// Останавливаем проигрывание звука.

bassloop = new Sound;

bassloop.stop(this._name);

// Прекращаем анимацию.

gotoAndStop(l);

}

Сценарии кнопки для цикла барабанного боя немного сложнее. Прежде чем начинать воспроизведение одного такого цикла, необходимо убедиться в том, что другие циклы этой группы отключены. Сценарий проверяет звуки, начиная с «drum loop 1» и заканчивая «drum loop 6», и отключает каждый из них. Он также задает возврат каждого клипа переключателя к кадру 1, чтобы остановить анимацию. После этого запускается воспроизведение выбранного цикла.

on (press) {

// Останавливаем любой другой цикл барабанного боя.

drumloop = new Sound;

for(i=1;i<=6;i++) {

_root["drum loop"+i].gotoAndStop(1);

drumloop. stop("drum loop"+i);

}

// Начинаем проигрывать выбранный звук.

drumloop.attachSound(this._nane);

drumloop.start(0, 9999);

// Воспроизводим анимацию.

gotoAndPlay(2);

}

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

Вечная Война. Книга VIII

Винокуров Юрий
8. Вечная Война
Фантастика:
боевая фантастика
юмористическая фантастика
космическая фантастика
7.09
рейтинг книги
Вечная Война. Книга VIII

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Сфирот

Прокофьев Роман Юрьевич
8. Стеллар
Фантастика:
боевая фантастика
рпг
6.92
рейтинг книги
Сфирот

Снегурка для опера Морозова

Бигси Анна
4. Опасная работа
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Снегурка для опера Морозова

Волк: лихие 90-е

Киров Никита
1. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк: лихие 90-е

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

Неудержимый. Книга XVIII

Боярский Андрей
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVIII

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Неудержимый. Книга XI

Боярский Андрей
11. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XI

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая