PDA

Просмотр полной версии : Универсальная функция плавного замедления


lakehouse
04.11.2005, 16:10
Хочется написать универсальную функцию плавного замедления

Что-то вроде такого:

ease = function(what,where,who,speed){
this.who.what+=(where - this.who.what)/speed;}

И соответственно использовать ее в двухкадровых циклах:

ease("_xscale",100,"bar", 7);

Только вот что-то работать не хочет. Вообще свойства-то клипов заменять строковыми переменными так можно?

KUZEN
04.11.2005, 16:19
MovieClip.prototype.p_easing = function(pos, _property, alpha) {
this.onEnterFrame = function() {
var dif = pos-this[_property];
this[_property] += dif*alpha;
updateAfterEvent();
if (Math.abs(dif)<1) {
this[_property] = pos;
delete this.onEnterFrame;
}
};
};
mc.p_easing(400,"_x",0.1);

Самый простой примерчик :)

Vitamin E
04.11.2005, 16:37
Ага, а теперь попробуй такой примерчик: :p
my_mc.p_easing(181,"_rotation",0.2);
Все уже давно написано:
http://laco.wz.cz/tween/ ;)

lakehouse
04.11.2005, 17:11
Большое спасибо за линк - это лучшая таблетка от головной боли и геморроя - все-в-одном! Вопрос снят! Гениально!

kvv
04.11.2005, 18:25
Не знаю, зачем было заново изобретать велосипед...
В семерке(с 8 не работаю) есть уже готовый(но не документированный) класс для постепенного, плавного и других движений.

lakehouse
06.11.2005, 11:35
Не знаю что там за недокументированный класс... что-то я про него ничего не слышал а вот Movieclip twening prototypes 1.2.0 - это вещь гениальная. Любые алгоритмы, свойства - в одну строчку и без создания и обращения к классам - супер.

7thsky™
06.11.2005, 12:49
вот тут можно прочитать про встроенный класс в 7 tweening prototypes (http://actionscript.org/tutorials/advanced/Tween-Easing_Classes_Documented/index.shtml)

kvv
06.11.2005, 13:48
Вот я про него и говорил...

А есть ли у кого-нибудь доки по работе с другим классами mx.transitions.* ?