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

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

Жанры

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

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

Шрифт:

on (press) {

// Aoaee.oai ia.aue eeei.

attachMovie("myMovieClip","newclip"+level,level);

// Eeaaai a neo.aeiia ianoi.

_root["newclip"+level]._x = int(Math.random*550);

_root["newclip"+level]._y = int(Math.random*400);

// Oaaee.eaaai n.ao.ee.

level++;

}

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

on (press) {

// Oaaeyai i.aauaouee eeei.

_root["newclip"+(level-1)].removeMovieClip;

// Aoaee.oai ia.aue eeei.

attachMovie("myMovieClip","newclip"+level,level);

// Eeaaai a neo.aeiia ianoi.

_root["newclip"+level]._x=int(Math.random*550);

_root["newclip"+level]._y=int(Math.random*400);

// Oaaee.eaaai n.ao.ee.

level++;

}

Используя

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

Урок 20. Управление несколькими клипами

Теперь, когда вы научились создавать клипы при помощи ActionScript, рассмотрим способы управления ими. Вы знаете, что можете управлять одним клипом с приписанным ему кодом, а если необходимо, управлять несколькими клипами? Что, если эти клипы ведут себя аналогичным образом?

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

Создание клипа сценария

Единственным способом управлять несколькими клипами будет поместить код в точку, контролирующую их все. Например, если у вас есть 10 клипов, вы можете поместить код в первый клип, который будет контролировать все остальные.

Почему бы вместо того, чтобы возлагать контроль на один из клипов, нам не создать клип, специально для этого предназначенный? Данный распространенный прием позволяет легко запомнить, куда вы поместили ваш код. Я назвал такой клип "actions movie clip" (клип сценария) [8] .

Начните с создания при помощи инструмента Text небольшого текстового окна на рабочем поле и напишите в нем слово "actions" [9] для того, чтобы его можно было легче идентифицировать. Затем, выделив текстовое окно, выберите команду Insert → Convert to Symbol для преобразования его в клип под названием «actions». Переместите его на серую область за пределами рабочего поля, так чтобы пользователь не видел слово «actions».

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

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

Прежде всего создайте эталон. В диалоговом окне Symbol Linkage Properties установите флажок Export This Symbol и укажите имя "sample" (см. файл actionsMC.fla).

Код, написанный ниже, будет включен в клип "actions". Он будет находиться
внутри программы обработки onClipEvent и состоять из двух частей. Первый обработчик будет отзываться на событие load. Событие load происходит при первом появлении клипа. Код выполняется один раз. В данном случае следует воспользоваться возможностью и создать 10 новых клипов:

OnClipEvent (load) {

// Nicaaai 10 eeeiia.

for(i=0;i<10;i++) {

_root.attachMovie("sample","sample"+i,i);

// Onoaiaaeeaaai eii.aeiaou

_root["sample"+i]._x = i*50+50;

_root["sample"+i]._y = 100;

}

}

Координаты клипов задаются одновременно с их созданием. Значение по вертикали равно 100, координата по горизонтали может иметь различные значения от 50 до 500. Результат показан на рис. 3.6.

Рисунок 3.6. Эти 10 клипов были созданы из эталона при помощи ActionScript

Вторая часть кода находится в программе обработки onClipEvent(enterFrame). Код выполняется в каждом цикле клипа «actions». Если клип воспроизводится со скоростью 12 кадров в секунду, код будет выполняться также 12 раз в секунду.

onClipEvent (enterFrame) {

// Iiai.a.eaaai ea.aue eeei a oeeea.

for(i=0;i<10;i++) {

_root["sample"+i]._rotation += 5;

}

}

Данный код циклически выполняется во всех клипах и поворачивает каждый их них на 5°. В результате на рабочем поле будет 10 вращающихся клипов.

Исходный файл: Gears.fla Я также создал улучшенную версию ролика под названием Gears.fla. За исключением кода ролик ничем не отличается от предыдущего. В Gears.fla клипы расположены таким образом, что зубья шестеренок соприкасаются. Чтобы создать эффект работающего механизма, каждый ролик изначально повернут относительно предыдущего на 15°. Соседние зубья каждой шестеренки расположены с интервалом в 30°, поэтому зубъя соседних шестеренок сцепляются. Кроме того, каждая шестеренка вращается в направлении, отличном от направления вращения предыдущей. Вот как выглядит код:

onClipEvent (load) {

initialRotation = 0;

// Nicaaai 10 eeeiia.

for(i=0;i<10;i++) {

// I.eniaaeiyai i.a.aaiie eeei.

_root.attachMovie("sample","sample"+i,i);

// Onoaiaaeeaaai eii.aeiaou

_root["sample"+i]._x = i*37;

_root["sample"+i]._y = 100;

// Onoaiaaeeaaai ea.aiio neaao.uaio iiai.io

// ia 15° ioiineoaeuii i.aauaouaai.

_root["sample"+1]._rotation = initialRotation;

initialRotation += 15;

}

}

onClipEvent (enterFrame) {

// I.iaaaaai ana eeeiu .a.ac iaei.

for(i=0;i<10;i+=2) {

// Iiai.a.eaaai ii .aniaie no.aeea.

_root["sample"+i]._rotation += 5;

// Neaao.uee iiai.io i.ioea .aniaie no.aeee.

_root["sample"*(i+1)],_rotation -= 5;

}

}

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

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

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

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

Гарем на шагоходе. Том 1

Гремлинов Гриша
1. Волк и его волчицы
Фантастика:
боевая фантастика
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Гарем на шагоходе. Том 1

Академия проклятий. Книги 1 - 7

Звездная Елена
Академия Проклятий
Фантастика:
фэнтези
8.98
рейтинг книги
Академия проклятий. Книги 1 - 7

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Сломанная кукла

Рам Янка
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сломанная кукла

Офицер-разведки

Поселягин Владимир Геннадьевич
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Офицер-разведки

Имя нам Легион. Том 9

Дорничев Дмитрий
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 9

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Этот мир не выдержит меня. Том 2

Майнер Максим
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Этот мир не выдержит меня. Том 2