Problême de clic sur galerie Tweenlite

lemythe1 Messages postés 5 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 21 avril 2010 - 15 oct. 2009 à 15:55
lemythe1 Messages postés 5 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 21 avril 2010 - 3 nov. 2009 à 12:24
Salut tout le monde

voila mon problême :
je fais une galerie avec TweenLite (class très pratique) en faisant défilé des image de gauche a droite avec 2 fleches sur les côtés. Mon problême est que si je clique trop vite sur les flêches avant que le mouvement soit arrêté, le mouvement s'accumule et ma position se décale au final... je ne sais pas trop comment empêcher un clic tant que l'animation n'est pas terminé...

ça serait super d'avoir un petit conseil...

je met mon code ça peut servir :

btn_right.addEventListener (MouseEvent.CLICK, right)
function right(MouseEvent):void {
TweenLite.to (image_1, 0.5, {x:image_1.x-900, ease:Elastic});
}

btn_left.addEventListener (MouseEvent.CLICK, left)
function left(MouseEvent):void {
TweenLite.to (image_1, 0.5, {x:image_1.x+900, ease:Elastic});
}

4 réponses

samsam69003 Messages postés 12 Date d'inscription dimanche 18 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
24 oct. 2009 à 04:09
Idem,
en principe il faut enlever les ecouteurs de boutton pur que celà marche et les remettre à la fin de tween avec onComplete..
mais chez moi ça ne marche pas...
ce qui est étrange c'est qu'il n'y est pas vraiement de doc sur le sujet ...
moi je fais ça avec des boucle for i =...
sniff.
0
samsam69003 Messages postés 12 Date d'inscription dimanche 18 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
24 oct. 2009 à 04:48
je viens de trouver !
il s'agit d'un mauvais fonctionnement des overwrites !
il faut faire super gaffe à ça .
dans ton cas :


btn_right.addEventListener (MouseEvent.CLICK, right)
function right(MouseEvent):void {
TweenLite.to (image_1, 0.5, {x:image_1.x-900, ease:Elastic, overwrite:false});
}

btn_left.addEventListener (MouseEvent.CLICK, left)
function left(MouseEvent):void {
TweenLite.to (image_1, 0.5, {x:image_1.x+900, ease:Elastic, overwrite:false});
} 





il faudra que tu teste ton fichier en html ou swf ensuite , et que tu le brutalise, (par exemple cliquer rapidement etc .. ) si ça fonctionne , ç'est bon !

autre chose , pour les autre , dans un environnement avec de petite vignette par exemple , crée avec des for i etc ..
mettre des overwrite sur mouse over, mouse out, pour que mouse click fonctionne...

:) bon code à vous .


lemythe1 ! , tiens nous au courant !
0
samsam69003 Messages postés 12 Date d'inscription dimanche 18 octobre 2009 Statut Membre Dernière intervention 24 octobre 2009
24 oct. 2009 à 16:22
petite mise à jour sur le sujet , sur un autre forum (on m'en voudra pas svp...)

il s'agit de faire un : killTweensOf () de TweenLite,
donc tuer les tweens appartement à un objet (un clip), c'est très bon , et c'est là que ça se passe , ce n'est pas moi qui ai trouvé cette solution , alors je ne me permettrai pas de remettre le code..

http://flash.mediabox.fr/index.php?showtopic=119833&pid=759942&st=0&#entry759942

bien à vous .
0
lemythe1 Messages postés 5 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 21 avril 2010
3 nov. 2009 à 12:24
effectivement avec les overwrite, que je ne connaissais pas cela fonctionne bien, on m'avait également apporté une autre solution que je poste ci dessous, mais qui semble plus "complexe"

je vais jeter un coup d'oeil sur ton lien samsam ça peut être interessant, je ne connais pas les killTweenOf ()

autre solution :

btn_left.addEventListener (MouseEvent.CLICK, left)
function left(e:MouseEvent):void {
if(tween_finish){
tween_finish = false;
TweenLite.to (image_1, 0.5, {x:image_1.x+900, ease:Elastic.easeOut, onComplete: finish_left});
}
}
function finish_left():void{
tween_finish = true;
}
0
Rejoignez-nous