Другой способ создания новых клипов – использование функции 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) {
// 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.
Читать дальше
Конец ознакомительного отрывка
Купить книгу