PDA

Просмотр полной версии : Кто нить использывал .tween ?


HN4E7O
13.10.2006, 17:51
Есть такая проблема....
Делаю типа сайта моды... И усер должен в меню выбрать серию нажав на кнопку в мувик подгружаю другой который начинает прокручивать фотки моделей из этой серии.... Фотографии двигаються по экрану при помощи [ new Tween] по "X" и по "Y"... И доходя до нужной позиции фото исчезает.... Всё хорошо...

Но когда закрываю этот мувик removeMovieClip(_level0.newClip); апотом подгружаю другую серию... то параметры Tween с прошлого мувика гдето летают...

intervalId = setInterval(mover2, 5000);
var mover2:Function = function(){
if(cualImagen>fotosXml.firstChild.childNodes.length-2)cualImagen=0;
else cualImagen++;
var nombre:String = "fotoFicha"+cualImagen;
var esteClip:MovieClip = mcF[nombre];
esteClip.swapDepths(this.getNextHighestDepth()+1000);
esteClip.onPress = function(){trace(this._name)}
esteClip._x = randRange(0-esteClip._width,Stage.width);
esteClip._y = randRange(0-esteClip._height,Stage.height);
newX = randRange(62,745.8-esteClip._width);
newY = 192.3;
newT = randRange(10,13);
var tweenAlpha:Tween = new Tween(esteClip, "_alpha", mx.transitions.easing.Strong.easeOut, 0,100, 2, true);
var tweenY:Tween = new Tween(esteClip, "_y", mx.transitions.easing.Strong.easeOut, esteClip._y,newY, newT, true);
var theClassName:String = tweenY.toString();
tweenY.onMotionChanged = function() {
trace( this.position+" : "+ esteClip);
};
var tweenX:Tween = new Tween(esteClip, "_x", mx.transitions.easing.Strong.easeOut, esteClip._x,newX, newT, true);
tweenX.onMotionChanged = function() {
if(this.time>5){
tweenX.stop();
var tweenXx:Tween = new Tween(esteClip, "_alpha", mx.transitions.easing.Strong.easeOut, 100,0, 8, true);
}
};

close.onPress = function (){
clearInterval(intervalId);
tweenY.stop();
tweenX.stop();
tweenA.stop();
for(n in mcF){
trace(mcF[n])
removeMovieClip(mcF[n]);
trace(mcF[n])
}
}
}
Есть вариант Tween.stop(); но так как tween не привязан к клипу и всегда одно и тоже название то выключает тока первый... а остальные доходят до конца...
Есть такой вариант как esteClip.tween("_y",newY,8,"easeOutElastic") но чтото он у меня не работает...

А может кто знает как подругому привязать Tween к каждому клипу или засунуть его куда нить чтобы потом обнаружить и остановить ???

Помогите если моджете... а то уже второй день в ступоре...
Спасибо.

Afon
13.10.2006, 18:19
Я как-то тоже сталкивался с проблемой корректной остановки Твинов... тоже дня два искал выход. Лично для меня тогда выходом стало использование Интервалов как альтернативы.

А Твины использую там, где нет необходимости их внезапно останавливать или перенаправлять.

silin
13.10.2006, 20:00
посмотри метод mx.transitions.Tween.stopEnterFrame()
в похожей ситуации решил вопрос с его помощью: все запущенные твины кладем в массив (по onMotionFinished удаляем), а при необходимости избавится вызываем stopEnterFrame() для всех..
другой вариант пользовать mx.effects.Tween: там запускается только один интервал (но меняются несколько параметров), в каких-то раскладах проще его контролировать..

HN4E7O
14.10.2006, 04:43
Вот!!!:victory:

#include "lmc_tween.as"
mc.tween(["_x","_y","_alpha"],[565,192.,100],6,"easeOutQuad",0,onEnd);
function onEnd(clip:MovieClip){
trace("onEnd");
}

читать тут http://laco.wz.cz/tween/
тут качать http://laco.wz.cz/tween/down.php?f=files/lmc_tween120.zip

Можно делать паузы в tween , куча разных параметров... как с мувиками так и с TextField... Вообщем очень мило

Der Grossen
15.10.2006, 05:32
http://hosted.zeh.com.br/mctween/
+ твин по безье и поддержка восмерочных фич

HN4E7O
15.10.2006, 14:22
Чудненько!!!