Ralentire l'itération d'une boucle en AS3

benji3rv Messages postés 5 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 5 novembre 2009 - 5 nov. 2009 à 13:45
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009 - 5 nov. 2009 à 18:30
Bonjour
Je suis en train de réaliser une animation flash qui permet d'afficher une galerie d'image qui se positionne en panoramique à l'intérieur de mon movie clip et j'aimerais que la position de la souris entraine un déplacement de ce panoramique (souris à droite le panoramique se déplace sur la droite, souris au milieu le panoramique se stop et souris à gauche le panoramique se déplace à gauche). Pour ce faire j'ai définit des zone sur ma position en X de ma souris sur mon movie clip grâce à une série de teste et j'ai appliqué à ces tests (ceux où la souris est à gauche et à droite) une boucle qui permet de déplacer mon panoramique jusqu'à ce qu'il arrive en fin (à droite) ou en début (à gauche).
Mon soucis est le suivant imaginons que je dise dans mon code que je déplace de 1px la position de mon panoramique à chaque itération de ma boucle, comment puis-je ralentir l'exécution de cette itération pour que mon animation soit fluide ?

Merci d'avance
Sweet

1 réponse

gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
5 nov. 2009 à 18:30
Salut,
bien il suffit de réduire le pas (1px) en cours de route, pour le passer à 0.5 par exemple.
En fait, la vitesse de ton clip est donnée par le frame rate choisi (FPS) par exemple 12 images/seconde. Donc en 1 seconde ton clip s'est déplacé de 12*pas, si tu as mis 1px pour le pas ça donne 12*1=12px/s.
La formule est donc Vitesse=FPS*Pas pour un MOUVEMENT RECTILIGNE UNIFORME.
Mais toi tu veux un MOUVEMENT RECTILIGNE UNIFORMEMENT VARIE, c'est à dire qui accélère ou décélère. Donc la formule sera :
Vitesse=FPS*Pas(x). Le pas varie en fonction de x la position en cours du clip. En clair tu dois juste trouver une loi pour le pas qui va bien. Par ex pour une décélération, Pas(x)=1-0.01*x. Dans ce cas lorsque x augmente le pas diminue, si x atteint 100 alors Pas(x)=1-0.01*100=0 et le clip s'arrette, si x depasse 100 Pas(x) devient négative, le clip va alors se déplacer dans l'autre sens.
0
Rejoignez-nous