Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Плавность движения в TweenLite (http://www.flasher.ru/forum/showthread.php?t=140541)

elcard 01.06.2010 23:07

Плавность движения в TweenLite
 
Есть массив маркеров... они расставлены. Движение осуществляется от одного маркера к другому с помощью TweenLite прямолинейным движением, но рывками при проходе через маркер. Как избежать рывков?

Код AS3:

var player1_move = TweenLite.to(player1, ((speed1[0] / 5)*speed_koef), {x:arr1_1to2[0].x, y:arr1_1to2[0].y, ease:Linear.easeNone, onComplete:move002});
 
                        function move002() {player1_move = TweenLite.to(player1, ((speed1[0] / 5)*speed_koef), {x:arr1_1to2[1].x, y:arr1_1to2[1].y, ease:Linear.easeNone, onComplete:move003});}
                        function move003() {player1_move = TweenLite.to(player1, ((speed1[0] / 5)*speed_koef), {x:arr1_1to2[2].x, y:arr1_1to2[2].y, ease:Linear.easeNone, onComplete:move004});}
                        function move004() {player1_move = TweenLite.to(player1, ((speed1[0] / 5)*speed_koef), {x:arr1_1to2[3].x, y:arr1_1to2[3].y, ease:Linear.easeNone, onComplete:move005});}
                        function move005() {player1_move = TweenLite.to(player1, ((speed1[0] / 5)*speed_koef), {x:arr1[1].x, y:arr1[1].y, ease:Linear.easeNone, onComplete:move006});}


fljot 01.06.2010 23:40

Там есть движение через точки по кривым

TERRORist 02.06.2010 00:13

может x и y заданы типом int?

elcard 02.06.2010 00:17

Цитата:

Сообщение от TERRORist (Сообщение 912410)
может x и y заданы типом int?

вот таким образом они заданы:
Код AS3:

coordsX = [50, 425, 800, 1175, 1550, 1925, 2300, 2675];
coordsY = [308, 308, 308, 308, 308, 308, 308, 308, 308];

Далее массив маркеров расставляю по этим координатам. Это влияет?

TERRORist 02.06.2010 00:20

нет, это только если они определялись у player1 как инты

elcard 02.06.2010 00:23

Цитата:

Сообщение от TERRORist (Сообщение 912413)
нет, это только если они определялись у player1 как инты

Сейчас проверю.

UPD: typeof = number

Psycho Tiger 02.06.2010 00:26

Цитата:

Сообщение от TERRORist (Сообщение 912410)
может x и y заданы типом int?

Объясни?

TERRORist 02.06.2010 01:18

Цитата:

Сообщение от Psycho Tiger (Сообщение 912419)
Объясни?

Ну, если предположить, что player1 это инстанс какого нить кастомного класса (не-дисплей обжект'а) и у него чисто случайно вместо Number был бы int или uint в качестве переменных x и y, то тогда б результат твинера округлялся...

MidnightOne 02.06.2010 13:42

ease:Linear.easeNone

Psycho Tiger 02.06.2010 18:07

Террорист, тогда бы рывки были постоянны. У автора проблема
Цитата:

но рывками при проходе через маркер.
т.е. только в определенное время.
У меня была такая же проблема, но не решил никак - было совсем не критично. Далее идут мои мысли, ничем не подкрепленные
ТвинЛайт имеет привязку по времени, т.е анимация не зависит от фпс. onComplete срабатывает по достижению таймера обратного отчета, т.е. поставили секунду - через секунду сработает onComplete. В принципе, всё здорово - но вот из за погрешностей таймеров onComplete рассинхронизуется с реальным достижением объекта финальной цели, в итоге конечные координаты будут достигнуты чуть позже, чем после срабатывания onComplete. Как вариант лечения - попробуй на onUpdate вешать метод, который будет проверять текущие координаты с финальными - и когда надо самостоятельно выстреливать коллбек. Вариант "лажовый", но я болею и лучшего в голову не приходит.


Часовой пояс GMT +4, время: 01:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.