Мы надеемся, что прочитав предыдущие статьи, относящиеся к Flash-технологии, вы уже научились создавать простейшие видеоролики и писать несложные скрипты, позволяющие управлять различными объектами вашей сцены. Но, возможно, в поисках нужного сценария вы столкнулись с проблемой создания модели механического движения, о котором так подробно было рассказано ещё в шестом классе средней школы.
Итак, сегодня мы расскажем о том, как с помощью Flash-технологии смоделировать равномерное и равноускоренное движение. Начнём с более простого варианта. С необходимостью создания модели равномерного движения объекта можно столкнуться, например, в том случае если вы захотите показать движение автомобиля. Казалось бы, что может быть проще - задать в первом кадре сцены начальную координату автомобиля, а в последнем - конечную, создать анимацию, отрегулировать скорость движения, увеличивая или уменьшая количество кадров сцены, и всё … Ролик, вроде как, готов. Но у такого подхода есть существенный недостаток. Вы действительно можете задать любую скорость перемещения объекта, но никак не сможете её менять в процессе работы ролика, например, при нажатии на кнопку.
Для того, чтобы управлять движением объекта в процессе работы видеоролика, необходимо написать скрипт, управляющий таким движением. Рассмотрим такой скрипт на примере движущегося по прямой автомобиля с постоянной скоростью. Вначале нарисуем простейший фон, имитирующий дорогу, затем создадим новый символ типа Movie Clip и поместим в него автомобиль. В окне Instance присвоим ему какое-нибудь имя, например avto. Теперь для того, чтобы изменить координаты автомобиля, необходимо переменной avto._x присвоить соответствующее значение. Наш видеоролик будет состоять всего из трёх кадров. Первый кадр осуществляет инициализацию переменных.
В данном случае 90 - это начальная координата автомобиля.
Второй кадр осуществляет перемещение в заданную координату.
Если эта координата превышает значение 900, т.е. автомобиль уехал за пределы экрана, то видеоролик возвращается в исходное состояние.
В данном случае наш автомобиль будет перемещаться на два пикселя вправо за один кадр.
Изменив это число, мы можем изменить скорость его перемещения.
Третий кадр осуществляет зацикливание движения.
Таким образом, если вы посмотрите работающий вариант, то увидите, что автомобиль равномерно пересекает экран компьютера.
Теперь усложним задачу. Сделаем так, чтобы автомобиль трогался с места в левой стороны экрана, разгонялся и на максимальной скорости покидал пределы окна.
Для подобной модернизации требуется совсем чуть-чуть - изменить всего один кадр - второй.
Мы ввели ещё одну переменную j. Она и осуществляет ускорение движения объекта.
Работающий вариант можно увидеть здесь.
Вы видите, что задавать движение объектов сцены, используя программные элементы, не только достаточно просто и быстро, но и более универсально, нежели чем просто создавать анимацию из начальной точки в конечную. С помощью свойств _x, _y, _rotation, _alpha и других можно без труда изменять различные параметры объекта, при этом количество кадров будет оставаться минимальным.
|