Просмотр полной версии : Как использовать классы Роберта Пеннера?
Ринсвинд
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.
Тогда уж onMotionFinished.
DarkLight
27.07.2007, 17:34
ну это зависит от того, нужна ли аналогичная реакция на stop()...
Ринсвинд
27.07.2007, 18:42
"Вопросов больше не имею" - сказал Остап и тут же задал следующий вопрос... :)
А могу ли, создавая несколько твинов циклом, потом следить за каждым, когда он Stopped?
То есть могу ли я в
var GoTween:Tween = new Tween...
указать переменную и засунуть в цикл? То есть могу ли в объявлении указывать имя+переменная, чтобы на выходе иметь GoTween1, GoTween2 и т.д? Сколько ни пробую, все равно получаются ошибка синтаксиса...
(хотя, наверное, это надо спрашивать уже в другой теме)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.