Копирование клипов
В данной программе обработки переменная level используется по-разному. Во-первых, для присвоения имени новому клипу (сначала клипу присваивается имя newclip. Переменная также отображает уровень клипа В конце программы значение переменной level увеличивается на 1. Таким образом, следующий создаваемый клип будет называться level1 и располагаться на уровне 1. С помощью функции Math.random () мы задаем будущему клипу случайные координаты в пределах рабочего поля. Обратите внимание, ссылка на клип осуществляется при помощи синтаксической структуры _root []. Другой способ создания новых клипов – использование функции attachMovie. Для выполнения данной функции не требуется, чтобы клип находился на рабочем поле. Он должен просто быть в библиотеке. Однако, если клип находится в библиотеке и не используется на рабочем поле, Flash автоматически не включит его в конечный swf-файл. Для того чтобы клип был включен в конечный файл, его необходимо выбрать в библиотеке и настроить его параметры в диалоговом окне Symbol Linkage Properties, которое вызывается из меню Options. Диалоговое окно изображено на рис. 3.5.
Рис. 3.5. Диалоговое окно Symbol Linkage Properties позволяет включать клип в swf-файл, даже если он не используется на рабочем поле
В окне следует установить флажок Export for ActionScript (Экспортировать для ActionScript). Затем вы должны придумать имя эталона, на которое будет ссылаться код. Я обычно использую имя эталона из библиотеки.
Исходный файл: AttachMovie.fla.
Первым параметром функции attachMovie является имя из диалогового окна Symbol Linkage Properties. Второй параметр – это имя копии клипа на рабочем поле, третий – уровень клипа. Код данной кнопки, содержащийся в файле AttachMovie.fla, за исключением одной строки, полностью совпадает с кодом примера DuplicateMovieClip.fla.
on
(press) {
// Дублируем первый клип.
attachMovie(
"myMovieClip"
,
"newclip"
+
level, level);
// Кладем в случайное место.
_root[
"newclip"
+
level]._x
=
int(Math.random()
*
550
);
_root[
"newclip"
+
level]._y
=
int(Math.random()
*
400
);
// Увеличиваем счетчик.
level
+
+
;
}
Исходный файл: RemoveMovieClip.fla.
При помощи функции RemoveMovieClip вы можете удалять клипы с рабочего поля. Например, следующий код из файла RemoveMovieClip.fla перед созданием нового клипа удаляет предыдущий:
on
(press) {
// Удаляем предыдущий клип.
_root[
"newclip"
+
(level
-
1
)].removeMovieClip();
// Дублируем первый клип.
attachMovie(
"myMovieClip"
,
"newelip"
+
level, level);
// Кладем в случайное место.
_root[
"newelip"
+
level], _x
=
int(Math.random()
*
550
);
_root[
"newclip"
+
level]._y
=
int(Math.random()
*
400
);
// Увеличиваем счетчик.
level
+
+
;
}
Используя данные приемы, вы можете сделать так, чтобы ваши игры и приложения создавали свои собственные клипы, добавляя и удаляя их с рабочего поля по мере необходимости.