Глава 13
Создание составной анимации
Ух, как хорошо мы поанимировали в главах 11 и 12! Все у нас теперь движется, плавает, ползает и совершает прочие телодвижения, подчиняясь нашему замыслу. Воистину, Flash 8 — король анимации.
А теперь на время перестанем им восторгаться и представим себе такую ситуацию. Мы создали анимированный прямоугольник, который должен двигаться из левого нижнего в правый верхний угол рабочего листа и при этом поворачиваться на некоторый угол (рис. 13.1). Для этого мы переместили его с помощью инструмента "стрелка" и повернули с помощью инструмента "трансформатор" (об этих инструментах см. главы 3 и 4). Все работает, все замечательно и все довольны.
Но злой рок в лице начальства не дремлет. Мы получили задание переделать эту анимацию так, чтобы наш прямоугольник не только двигался и не только вращался, но и при движении разваливался надвое. Средствами движения этого достичь очень трудно, да и морфинг в этом случае не бог весть какой помощник. Что делать?
Конечно, можно обратиться к покадровой анимации. Там этой проблемы нет: мы сможем нарисовать все, что угодно, и Flash корректно это воспроизведет. Но каждый кадр такой анимации придется рисовать вручную. А начальство ждет готовую работу через пять минут…
В такой ситуации проще всего будет создать составную анимацию. Вот о ней-то мы сейчас и поговорим.
Дело в том, что Flash позволяет создавать не только статичные образцы. Образец может содержать анимацию (так называемый анимированный образец). Делается это очень просто: мы запускаем один из режимов правки образца и прямо в нем создаем любую нужную нам анимацию, покадровую или трансформационную.
А когда мы создадим на основе анимированного образца экземпляр (анимированный экземпляр) и анимируем еще и его, две анимации — экземпляра и образца — будут воспроизводиться одновременно и независимо друг от друга. Таким образом мы сможем создать сколь угодно сложную анимацию. И решить проблему разваливающегося на части прямоугольника, о которой говорилось выше. И пусть только начальство попробует что-нибудь сказать!!!
Анимированные образцы могут, в свою очередь, содержать другие образцы, в том числе тоже анимированные. Представляете, какие это открывает возможности!
Такая анимация, включающая анимированные экземпляры, называется составной или многоуровневой. Каждый анимированный экземпляр, вложенный в другой экземпляр или помещенный в сам документ, станет уровнем анимации. Анимация же, содержащаяся в анимированном экземпляре (точнее, в образце, на основе которого от создан), называется внутренней.
Именно о составной анимации мы поговорим в этой главе. А также познакомимся с новым для нас типом образцов — образцом-клипом — и выясним, чем же образцы-клипы могут быть нам полезны.
Ну что же, кажется, с теорией покончено. Переходим к практике!
Создание составной анимации
Давайте создадим составную анимацию, демонстрирующую распад прямоугольника на части. Но сначала создадим сам "предмет распада", если еще этого не сделали. Нарисуем на рабочем листе прямоугольник и преобразуем его в обычный графический образец. Не мудрствуя лукаво, назовем его прямоугольник.
Теперь нам нужно заставить его разделяться надвое. Пусть этот процесс длится на протяжении 10 кадров. Откроем только что созданный образец прямоугольник в режиме правки (неважно, каком именно) и приступим к созданию внутренней анимации.
Воспользуемся для этого хорошо знакомыми нам по главе 12 средствами. Создадим второй ключевой кадр на десятой позиции шкалы кадров. Выделим только что созданный второй ключевой кадр, выберем инструмент "стрелка", выделим перетаскиванием правую половину прямоугольника и перетащим ее немного вверх и вправо (или еще куда-нибудь). Теперь нам останется выделить любой из подкадров первого, растянутого, ключевого кадра и выбрать в списке Tween панели Properties пункт Shape. У нас должна получиться картина, показанная на рис. 13.2.
Теперь создадим анимацию в самом документе (внешнюю анимацию). Для этого переключимся в режим правки документа. Поместим в нижнем левом углу рабочего листа экземпляр образца прямоугольник. Создадим анимацию, перемещающую его в верхний правый угол рабочего листа, продолжительностью как минимум вдвое большей, чем продолжительность анимации самого образца (в нашем случае — 20 кадров). И запустим готовую анимацию. Результат показан на рис. 13.3.
Мы только что создали составную двухуровневую анимацию, т. е. сложную анимацию, состоящую их двух простых, вложенных друг в друга. Все средства, использованные нами для этого, стандартны и знакомы нам по предыдущим главам этой книги.
Использование образцов-клипов
А теперь давайте сделаем вот что. Запустим воспроизведение созданной нами составной анимации в отдельном окне, выбрав пункт Test Movie меню Control. После этого в окне просмотра фильма отключим пункт-выключатель Loop в меню Control, чтобы убрать зацикливание, включенное по умолчанию. Затем дождемся, пока наш прямоугольник докувыркается до финиша, и посмотрим, что будет с ним дальше.
А ничего не будет. Анимация воспроизведется до конца и остановится. Причем это произойдет с обеими анимациями: и с внешней, и с внутренней. Всесильный режиссер Flash скажет в конце "Стоп!" им обоим.
Выходит, что внутренняя анимация, созданная нами в графическом образце, не такая уж и независимая. Она воспроизводится только вместе с внешней, до тех пор пока не кончится последовательность кадров последней. Такая внутренняя анимация называется зависимой.
Конечно, в рассмотренном случае такая зависимость удобна. Но что делать, если нам нужно, чтобы внутренняя анимация воспроизводилась в любом случае, даже после прекращения внешней анимации или даже при ее отсутствии? Может ли Flash и в этом случае нам помочь?
Конечно! Для решения проблемы нам всего-навсего нужно будет использовать образцы-клипы.
Внутренняя анимация, созданная в образце-клипе, будет воспроизводиться в любом случае. Даже если внешняя анимация закончилась. Даже если мы вообще не создали внешнюю анимацию! Такая анимация называется независимой.
Единственное "но": Flash не воспроизводит внутреннюю анимацию клипов в окне документа. То есть если мы запустим анимацию, содержащую анимированный клип, анимация клипа не воспроизведется. Чтобы просмотреть ее, нам придется запустить воспроизведение фильма в отдельном окне, выбрав в меню Control пункты Test Movie или Test Scene.
Давайте откроем созданный нами ранее документ, содержащий анимированный прямоугольник, и попробуем применить к делу полученные знания. Включим пункт-выключатель Library меню Window, чтобы вывести на экране панель Library. Выделим в списке этой панели образец прямоугольник и выберем в подменю Туре контекстного меню пункт Movie Clip. Все — мы поменяли тип этого образца на "образец-клип".
Теперь нужно выделить первый ключевой кадр внешней анимации, выделить на рабочем листе экземпляр этого образца и выбрать в раскрывающемся списке, находящемся в верхнем левом углу панели Properties, пункт Movie Clip. Таким образом мы поменяем тип экземпляра этого образца на "образец-клип". (Как мы помним из главы 8, типы образца и порожденного им экземпляра могут быть разными.) И не забудем сделать то же самое во втором ключевом кадре анимации.
Теперь нажмем клавишу <Enter>, чтобы запустить воспроизведение готовой анимации. Как говорилось ранее, прямоугольник просто переместится на новое место и повернется; его собственная анимация — "распад" прямоугольника на две части — воспроизведена не будет. А вот если мы запустим ее воспроизведение в отдельном окне и отключим пункт-выключатель Loop в меню Control окна просмотра, чтобы убрать зацикливание, то увидим результаты наших трудов во всей красе. Внешняя анимация дойдет до конца, но внутренняя все равно будет воспроизводиться — прямоугольник будет разваливаться на части, пока мы не закроем окно просмотра.
Образцы-клипы очень часто применяются для создания такой вот независимой анимации. (У них есть и другие сферы применения, но мы рассмотрим их в части IV этой книги, когда будем говорить о программировании в среде Flash.) Если же нам не нужна независимая анимация, лучше использовать обычные графические образцы, благо в результирующем файле Shockwave/Flash они занимают заметно меньше места, чем образцы-клипы.
Параметры внутренней анимации
Теперь давайте выделим на рабочем листе экземпляр нашего анимированного образца и посмотрим, что нам предлагает панель Properties. Если это экземпляр графического образца, эта панель примет вид, показанный на рис. 13.4.
В данный момент нас интересуют только находящаяся в центре панели Properties группа, содержащая раскрывающийся список, и поле ввода First. Все остальные элементы управления, показанные на рис. 13.4, нам уже знакомы.
Раскрывающийся список данной группы позволяет указать, какая часть внутренней анимации образца, на основе которого был создан выделенный экземпляр, будет воспроизведена как часть общей анимации. Список содержит три пункта:
□ Loop — внутренняя анимация образца будет воспроизводиться бесконечно (зациклится). Причем воспроизведение ее начнется с кадра, номер которого введен в поле ввода First. Этот пункт списка выбран по умолчанию;
□ Play Once — внутренняя анимация образца будет воспроизведена только один раз, после чего остановится, даже если внешняя анимация еще не закончилась. При этом она будет воспроизведена, начиная с кадра, номер которого введен в поле ввода First. Пример такой анимации показан на рис. 13.5;
□ Single Frame — внутренняя анимация образца застынет на кадре, номер которого введен в поле ввода First. Пример такой анимации можно увидеть на рис. 13.6.
В случае анимированного клипа все эти элементы управления недоступны. Как уже говорилось выше, внутренняя анимация клипов воспроизводится независимо от внешней анимации, и управлять ей придется другими способами — с помощью сценариев ActionScript (см. часть IV).
Что дальше?
На этом разговор о составной анимации можно закончить. Тема исчерпана.
Но это не означает, что мы узнали все о сложной анимации. В следующей главе будет рассказано о том, как использовать для создания сложной анимации слои. Мы узнаем, как анимировать элементы, находящиеся на разных слоях, а также выясним все о специальных слоях и о том, как они могут нам помочь.