Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Задание №6. Обновление экрана. будет не плавное перемещение клипа вправо, а резкий скачок сразу на 100 пикселов. Если частота смены кадров 1fps (интервал времени между кадрами 1000 миллисекунд) а значение интервала у функции setInterval() 100 миллисекунд,




Задание №6

Доработать флеш, чтобы шарик останавливался.

Обновление экрана

Все изменения, программно внесенные в фильм, отображаются на экране только при загрузке нового кадра или с интервалом времени, соответствующим частоте смены кадров. Поэтому результатом работы цикла

for(var i=1; i< =100; i++) this. _x+=1;

будет не плавное перемещение клипа вправо, а резкий скачок сразу на 100 пикселов.

Если частота смены кадров 1fps (интервал времени между кадрами 1000 миллисекунд) а значение интервала у функции setInterval() 100 миллисекунд,

setInterval(func, 100);

то на экране будет отображаться результат 10 последовательных вызовов функции func. При такой частоте смены кадров объект clip будет двигаться скачками.

Немедленное обновление экрана вызывает глобальная функция updateAfterEvent(). Использовать ее можно быть только в функциях, вызываемых setInterval, и обработчиках событий. При размещении в других местах updateAfterEvent() просто игнорируется системой.

Задание №7

Добавить во флеш обновление экрана после каждого перемещения шарика.

Задание №8

Создать аналогичный флеш, но с использованием обработчика onEnterFrame.

Задание №9 (дополнительное)

Создать флеш, содержащий шарик, обладающий следующим поведением:

· при нажатии, его можно перетаскивать мышкой:

· если шарик отпустить, он станет совершать затухающие колебания относительно начального положения.

Контрольные вопросы к лабораторной работе №6

1. Создание непрерывной анимации. Можно ли использовать цикл?

2. Когда наступает событие EnterFrame в однокадровом и многокадровом роликах?

3. Функция setInterval(). Периодический вызов функции и метода.

4. Что возвращает функция setInterval()?

5. Определение координат мышки.

6. Программирование движения в заданном направлении.

7. Остановка движения объекта в заданном месте.

8. Обновление экрана.

9.  Вопросы по коду задания.

Лабораторная работа №7

Тема: Программное создание, удаление и поворот экземпляров клипов

Отчет: Файлы с выполненными заданиями.

Свойство _rotation

Свойство _rotation определяет угол поворота оси Х объекта относительно оси Х родительского объекта. Положительные значения соответствуют повороту по часовой стрелке, отрицательные — против часовой стрелки. Может принимать значения от -180о до 180о. Если присвоить значение вне этого диапазона, то для отрицательных значений будет добавляться по 360о до тех пор, пока значение не попадет в допустимый интервал, для положительных значений – 360о вычитается. Так значение 181о будет преобразовании в –179 о, а –372 о — в –12о.

Задание №1

1. Создать новый символ mc1 (MovieClip — фрагмент ролика) в виде стрелки с точкой регистрации в ее левом конце.

2. Создать из двух стрелок новый символ  mc2  — " систему координат".

 

3. Создать копию символа mc1 – символ mc3. Изменить цвет, длину и толщину стрелки.

4. Поместить символ mc3 в символ mc2 следующим образом.

Дать внутреннему символу (красной стрелке) имя in_mc.

5. Разместить в рабочем поле экземпляр символа mc2 с именем parent_mc и кнопку с именем btn_btn.

В сценарии кадра повернуть parent_mc на -30о и написать обработчик нажатия кнопки

var n=0;

btn_btn. onPress=function(){

n+=30;

parent_mc. in_mc. _rotation=n

trace(" n=" +n+"     

_rotatioin=" +parent_mc. in_mc. _rotation);

}

Проследить, что выводится в окно OutPut.

Функция atan2

Если надо повернуть объект clip с координатами (Ха, Уа) таким образом, чтобы его ось Х была направлены на в точку с координатами (Хо, Уо), то вычисляем

dX=Xo-Xa; dY=Yo-Ya;

var alpha=Math. atan2 (dY, dX)/(Math. PI/180);

 

Функция atan2 (dY, dX) возвращает угол (в радианах), на который надо повернуть объект clip, чтобы его ось Х смотрела в точку (Хо, Уо):

           clip. _rotation= alpha;

После выполнения третьего пункта объект clip будет повернут следующим образом:

Если же надо, чтобы ось У была направлена на точку с координатами (Хо, Уо), то надо повернуть еще на 90 градусов.

clip. _rotation =Math. atan2 (dY, dX)/(Math. PI/180) +90;

Задание №2

На рабочем поле расположить экземпляр красного жука и кнопку. Масштаб жука увеличить в два раза.

 

При нажатии кнопки в произвольном месте поля появляется новый красный жук произвольного размера (масштаб по осям 0х и 0y независим и принимает значения от 25% до 125%) и с произвольным углом поворота.

Первоначальный жук должен располагаться поверх всех копий! Кнопка также не должна исчезать под жуками.

Задание №3

Жук-прообраз должен поворачиваться к каждой своей создаваемой копии.

Задание №4

Добавить кнопку, нажатие которой приводит к уничтожению всех копий красного жука. Кнопка также не должна исчезать под жуками.

Желтый жук " пожирает" красных жуков. Желтый жук находится над всеми объектами.

Перед уничтожением жуков-копий желтый жук поворачивается к ним и перемещается на их место. Уничтожение начинается с самих верхних копий в порядке, обратном их появлению.

Красный жук при этом поворачивается к уничтожаемой копии.

 

Жуки уничтожаются со скоростью смены кадров.

После уничтожения последней копии желтый жук исчезает.

После уничтожения всех копий можно опять их генерировать.

Задание №5 (дополнительное)

После нажатия кнопки ”Уничтожить” выполняется анимация последовательного перемещения желтого жука к копиям красного жука, при этом исходный красный жук поворачивается (следит) за желтым. При достижении красной копии происходит ее уничтожение.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...