Мы
надеемся, что прочитав
предыдущие статьи,
относящиеся к Flash-технологии,
вы уже научились создавать
простейшие видеоролики и
писать несложные скрипты,
позволяющие управлять
различными объектами вашей
сцены. Но, возможно, в поисках
нужного сценария вы
столкнулись с проблемой
создания модели механического
движения, о котором так
подробно было рассказано ещё в
шестом классе средней школы.
Итак, сегодня мы
расскажем о том, как с помощью Flash-технологии
смоделировать равномерное и
равноускоренное движение. Начнём
с более простого варианта. С
необходимостью создания модели
равномерного движения объекта
можно столкнуться, например, в том
случае если вы захотите показать
движение автомобиля. Казалось бы,
что может быть проще – задать в
первом кадре сцены начальную
координату автомобиля, а в
последнем - конечную, создать
анимацию, отрегулировать
скорость движения, увеличивая или
уменьшая количество кадров сцены,
и всё … Ролик, вроде как, готов. Но
у такого подхода есть
существенный недостаток. Вы
действительно можете задать
любую скорость перемещения
объекта, но никак не сможете её
менять в процессе работы ролика,
например, при нажатии на кнопку.
Для того, чтобы
управлять движением объекта в
процессе работы видеоролика,
необходимо написать скрипт,
управляющий таким движением.
Рассмотрим такой скрипт на
примере движущегося по прямой
автомобиля с постоянной
скоростью. Вначале нарисуем
простейший фон, имитирующий
дорогу, затем создадим новый
символ типа Movie Clip и поместим в
него автомобиль. В окне Instance
присвоим ему какое-нибудь имя,
например avto. Теперь для того,
чтобы изменить координаты
автомобиля, необходимо
переменной avto._x присвоить
соответствующее значение. Наш
видеоролик будет состоять всего
из трёх кадров. Первый кадр
осуществляет инициализацию
переменных:
i = 90;
j = 0;
avto._x=90
В данном случае 90 – это
начальная координата автомобиля.
Второй кадр
осуществляет перемещение в
заданную координату:
i = i+2;
avto._x = i;
if(avto._x > 900){ gotoAndPlay (1);}
Если эта координата
превышает значение 900, т.е.
автомобиль уехал за пределы
экрана, то видеоролик
возвращается в исходное
состояние.
В данном случае наш
автомобиль будет перемещаться на
два пикселя вправо за один кадр.
Изменив это число, мы
можем изменить скорость его
перемещения.
Третий кадр
осуществляет зацикливание
движения:
gotoAndPlay (2);
Таким образом, если вы
посмотрите работающий вариант, то
увидите, что автомобиль
равномерно пересекает экран
компьютера.
Теперь усложним задачу.
Сделаем так, чтобы автомобиль
трогался с места в левой стороны
экрана, разгонялся и на
максимальной скорости покидал
пределы окна.
Для подобной
модернизации требуется совсем
чуть-чуть - изменить всего один
кадр – второй:
j = j+0.05;
i = i+j;
avto._x = i;
if(avto._x > 900){ gotoAndPlay (1);}
Мы ввели ещё одну
переменную j. Она и осуществляет
ускорение движения объекта.
Работающий вариант
можно увидеть здесь.
Вы видите, что задавать
движение объектов сцены,
используя программные элементы,
не только достаточно просто и
быстро, но и более универсально,
нежели чем просто создавать
анимацию из начальной точки в
конечную. С помощью свойств _x, _y,
_rotation, _alpha и других можно без труда
изменять различные параметры
объекта, при этом количество
кадров будет оставаться
минимальным.
|