Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как использовать классы Роберта Пеннера? (http://www.flasher.ru/forum/showthread.php?t=99053)

Ринсвинд 27.07.2007 00:08

Как использовать классы Роберта Пеннера?
 
Вот смотрю на коды Easing Equations от Robert Penner, например
Код:

class com.robertpenner.easing.Quart {
        static function easeInOut (t:Number, b:Number, c:Number, d:Number):Number {
                if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
                return -c/2 * ((t-=2)*t*t*t - 2) + b;
        }
}

И как его применять?
Как-то мое образование еще до классов, прототипов не дошло. :(
Как я могу с помощью этого класса передвинуть мой my_mc на 200 пикселей вправо за 10 секунд, естественно, с начальным ускорением и последующим замедлением?
Если это нетрудно, подскажите, а то что-то совсем заглох.

DarkLight 27.07.2007 00:12

см. документацию к классу Tween. ссылка на эту функцию передается при создании экземпляра Tween.

Ринсвинд 27.07.2007 01:58

Спасибо! В общем, понял...
Код:

import mx.transitions.*;
import mx.transitions.easing.*;
new Tween(my_mc, '_x', Strong.easeInOut, 0, 200, 10, true);

Но не совсем понял все же, как к "классическим" твинам прикрутить "неклассичекий" вышеуказанный от этого Пеннера. :)

DarkLight 27.07.2007 02:42

По аналогии делается:
Код:

import mx.transitions.*;
com.robertpenner.easing.*;
new Tween(my_mc, '_x', Quart.easeInOut, 0, 200, 10, true);


Ринсвинд 27.07.2007 17:07

Спасибо. А со всеми этими Tween, я могу получить условие, когда данный tween отработал, т.е. my_mc доехал до конца, чтобы потом сделать remove my_mc?
Или просто следить "сверху", когда _x станет равным 200?

DarkLight 27.07.2007 17:30

ActionScript 2.0 Components Language Reference
Tween class > Tween.onMotionStopped
Цитата:

Tween.onMotionStopped

Event handler; invoked when the tweened animation completes to the end of its animation or when the Tween.stop() method is called. Handling this event allows your code to react at the point at which the tweened animation was stopped.

etc 27.07.2007 17:31

Тогда уж onMotionFinished.

DarkLight 27.07.2007 17:34

ну это зависит от того, нужна ли аналогичная реакция на stop()...

Ринсвинд 27.07.2007 18:42

"Вопросов больше не имею" - сказал Остап и тут же задал следующий вопрос... :)
А могу ли, создавая несколько твинов циклом, потом следить за каждым, когда он Stopped?
То есть могу ли я в
Код:

var GoTween:Tween = new Tween...
указать переменную и засунуть в цикл? То есть могу ли в объявлении указывать имя+переменная, чтобы на выходе иметь GoTween1, GoTween2 и т.д? Сколько ни пробую, все равно получаются ошибка синтаксиса...
(хотя, наверное, это надо спрашивать уже в другой теме)


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

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