Рыбников Александр
Мы надеемся, что прочитав
предыдущие статьи, относящиеся к 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 и других можно без труда
изменять различные параметры объекта, при этом количество кадров будет
оставаться минимальным.
Литература по FLASH
|