Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Програмная анимация

div.main {margin-left: 20pt; margin-right: 20pt}

Програмная анимация
Как заставить мувиклип изменяться на экране без Tweening?
Откроем Flash и нарисуем шар (в моем примере Properties шара W-20, H-20, X-0, Y-380, при размере сцены 550х400 пиксель и частоте кадров-12.) Выделим шар и сделаем из него символ (F8)- MovieClip. Выделим вновь образованный MovieClip, если он не выделен, и откроем панель Actions. Впишем такой код:
onClipEvent (enterFrame) {var clr
_x+=1
_y-=1
_xscale+=1
_yscale+=1
clr=new Color(this)
clr.setRGB(200,200,200)
//clr.setRGB(0x335599) или так.
_visible=!_visible
}

Жмем Ctrl+Enter, см. Ex1.fla. Шар увеличивается, изменил цвет, мерцает и движется!

Событие enterFrame происходит с заданной частотой фильма т.е. в данном примере 12 раз в секунду, а значит за одну секунду размер мувиклипа увеличится на 12% и по х и по у, а также смещается и в право, и вверх по 12 пикселей. Если хотите ограничить движение мувиклипа, то воспользуйтесь конструкцией вроде “if () {}”, так как конструкция “do {} while ()” выполняет “do {}” игнорируя “while ()”, при событии enterframe в onClipEvent.

Это свойство onClipEvent(enterframe) будем использовать для создания движка на сцене. Представим, что наш шар это ядро выпущенное из пушки которое должно за 3000 милисекунды (=3 с.) пролететь из одного угла сцены в другой при этом коснуться самого верха сцены.
Наша сцена это, ни что иное, как координатная плоскость начало координат (0,0) находится в левом верхнем углу, ось Х направлена в право, а Y в низ, размер сцены 550х400 единиц (pixels), для данного примера! Начальные координаты шара х0=0, у0=380 и t0=0, это координаты верхнего левого угла квадратного выделения для шара. Конечные координаты полета, тогда будут хк=530, ук=380 и tк=3000. В момент наивысшего подъема шара координаты будут хв=265, ув=0 и tв=1500. Согласно законам движения материальной точки будем иметь систему уравнений: (хк-х0)/(tк-t0)=vx ;
ук-у0=vуtк+g(tк)2/2 ; ув-у0=vуtв+g(tв)2/2 . Подставив в эти уравнения известные нам значения, найдем vx=53/300, vy=-38/75 g=38/112500. Зная эти цифры создадим полет шара.
Очистим Actions у шара из первого примера. Зададим мувиклипу <Instance Name> - ball. Помните, что «мирское имя» мувиклипа, которое прописано в библиотеке (Library) и «партийная (программная) кличка»(<Instance Name>), не одно и тоже!
Теперь на сцене создадим пустой MovieClip (Ctrl+F8). В не мы и создадим движок для шара-ядра. Можно поместить этот пустой мувик в х=0 и у=0, чтоб не терялся. Выделим его и откроем Actions, не долго мудрствуя запишем известные формулы движения тела по параболе с расчитанными нами параметрами, в код. Выглядит приблизительно, так:
onClipEvent (enterFrame) {var t,vx=53/300,vy=-38/75,g=38/112500
if (_root.ball._x<530) {
t=getTimer()
_root.ball._x=vx*t
_root.ball._y=380+vy*t+(g*t*t/2)
}
}
Жмем Ctrl+Enter, см. Ex2.fla
Ну и что? А то, что формулы различных кривых и как их строить, мы знаем, кинематика, динамика, дифуры, матанализ и матрицы для нас это тьфу!, можем творить что угодно в одном кадре!
P.S. В примерах FLA версии Flash MX, SWF версии Flash 5.



Автор: © Eugene D
Источник: http://www.flasher.ru


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте