On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru


азартмания казино вход




 

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

Автор: © Eugene D

Как заставить мувиклип изменяться на экране без 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
Ну и что? А то, что формулы различных кривых и как их строить, мы знаем, кинематика, динамика, дифуры, матанализ и матрицы для нас это тьфу!, можем творить что угодно в одном кадре!



Литература по FLASH