Автоматическая программная анимация — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Автоматическая программная анимация

2017-06-19 72
Автоматическая программная анимация 0.00 из 5.00 0 оценок
Заказать работу

На этот раз анимация будет управляться скриптом без участия пользователя. И здесь, как и в случае с идентификацией два подхода - старый и новый. Придётся изучать оба.

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

x +=1;

Откомпилируйте ролик и посмотрите список переменных. Как и следовало ожидать x=1 (если переменная ранее не определена, её значение равно нулю)

Добавьте в ролик ещё один кадр, можно обычный (F5), и снова откомпилируйте

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

На свойстве зацикливания многокадровых роликов основана вся программная анимация.

Создайте в данном ролике экземпляр «Movie Clip» с именем «ball» а в скрипт кадра добавьте строку

ball._x = x

Убедитесь, что клип сам ползёт по экрану слева направо. Это и есть простейшая программная анимация.

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

_height+=1;

и добавьте на линейку ещё один обычный кадр.

Так как указано лишь название свойства, то оно относится к текущему клипу. Интересно, что то же самое применимо и к основной линейке ролика, т.е клипу _root так же можно изенять свойства!

В новом ролике нарисуйте что нибудь на сцене, добавьте обычный кадр, а ключевому кадру присвойте скрипт.

_rotation+=10;

_x=200;

_y=200;

_xscale=50;

_yscale=50;

 

двухкадровый цикл имеет два серьёзных недостатка.

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

Во вторых, невозможно задать начальные условия. Попробуйте увеличивать прозрачность. По умолчанию для экземпляра её значение равно 100 и будет расти дальше, так что никаких изменений на экране Вы не увидите.

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

Переходы к кадрам и сценам.

Мы уже знакомились с работой оператора gotoAndPlay при создании презентации. Рассмотрим ещё несколько примеров. Первый пример – что бы вспомнить принцип работы. В новом ролике создайте любую анимацию, которая будет идти в течение 20 кадров. В последнем кадре создайте скрипт Go to and Play (10). Проиграйте ролик. В начале анимация проиграется целиком, а потом будут проигрываться только последние 10 кадров. Теперь пример поинтереснее.

В новый ролик добавьте ключевой кадр. В первом кадре нарисуйте единицу, а во втором двойку. В первый кадр добавьте скрипт

x+=1;

Проиграйте ролик

Кадры будут постоянно менять друг друга, а значение переменной «x» расти, как и следовало ожидать. Несмотря на то, что кадры и так меняются «поторопим» первый кадр, добавив в него скрипт перехода так что получится

gotoAandPlay (2);

x+=1;

Проиграйте ролик. На экране всё время остаётся двойка! Кажется, что ролик остановился на втором кадре, однако, если нажать Ctrl Alt V то можно убедиться, что «x» в памяти растёт. Даже если поменять местами команды скрипта, ситуация не изменится. Из данного эксперимента следуют два важных вывода

1. Кадр, из которого осуществляется переход, не прорисовывается.

2. Скрипт, содержащий оператор перехода, исполняется полностью независимо от положения оператора.

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

gotoAndPlay (1)

только на всякий случай сохраните прежние ролики так как Flash иногда в подобной ситуации совершает недопустимую операцию. Откомпилируйте ролик. Вскоре должно возникнуть окне с предложением прекратить исполнение скрипта.

Свойство «непрорисовки» кадра, из которого происходит переход, широко используется в современных роликах. Рассмотрим несколько примеров.

Исключение «краевого эффекта»

Создайте в ролике 9 кадров анимации вращающегося вокруг своей оси объекта.

Нарисуйте в первом кадре нового ролика вертикальную стрелку, выделив, преобразуйте её в экземпляр (можно типа Graphic). В девятую позицию вставьте ключевой кадр (F6). Активизируйте панель «frame» и в списке «tweening» выберите «Motion» и установите вращение по часовой стрелке (clockwise) один раз. В каждом кадре стрелка будет поворачиваться на угол 45 градусов. Проиграйте ролик. Обратите внимание, что в верхнем положении стрелка задерживается лишний кадр, так как в первом и последнем кадрах она в вертикальном положении. Такое явление обычно называют краевым эффектом. Что бы исключить прорисовку последнего кадра, добавьте в него скрипт

Go to and Play (1)

Проиграйте ролик. Теперь стрелка крутится плавно.

 


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.