Иллюстрированный самоучитель по созданию Flash-игр

Копирование клипов

В данной программе обработки переменная level используется по-разному. Во-первых, для присвоения имени новому клипу (сначала клипу присваивается имя newclip. Переменная также отображает уровень клипа В конце программы значение переменной level увеличивается на 1. Таким образом, следующий создаваемый клип будет называться level1 и располагаться на уровне 1. С помощью функции Math.random () мы задаем будущему клипу случайные координаты в пределах рабочего поля. Обратите внимание, ссылка на клип осуществляется при помощи синтаксической структуры _root []. Другой способ создания новых клипов – использование функции attachMovie. Для выполнения данной функции не требуется, чтобы клип находился на рабочем поле. Он должен просто быть в библиотеке. Однако, если клип находится в библиотеке и не используется на рабочем поле, Flash автоматически не включит его в конечный swf-файл. Для того чтобы клип был включен в конечный файл, его необходимо выбрать в библиотеке и настроить его параметры в диалоговом окне Symbol Linkage Properties, которое вызывается из меню Options. Диалоговое окно изображено на рис. 3.5.

Иллюстрированный самоучитель по созданию Flash-игр › Элементы ActionScript для создания игр › Копирование клипов
Рис. 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++;
}

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.