Tutoriaux : faire trembler un clip sur la scène principale
 

1. Introduction

 

On me demande d'expliquer comment procéder pour faire trembler un clip qui se trouve sur la scène principale autrement qu'en faisant des interpolations de mouvement. Et bien j'explique : on utilise actionscript et les suites géométriques étudiées au lycée... Cliquez sur le bouton vert de l'animation ci-contre pour faire trembler le clip qui contient le mot "TREMBLEMENT". Utilisez les glissières pour faire varier les deux paramètres de cette animation et cliquez à nouveau sur le bouton vert pour observer les différences.

 
2. Dans la bibliothèque
 

Dans la bibliothèque de votre animation, créez un clip quelconque. Par exemple, en son centre, créez un champ de texte dans lequel vous placez le mot "TREMBLEMENT". Placez ensuite une occurrence de ce clip sur la scène principale, centrez la horizontalement et dans le panneau "propriétés", nommez cette occurrence "clip".

A l'aide d'actionscript nous allons faire trembler cette occurrence de manière répétitive.

 
3. Le code et l'animation obtenue
 
Dans le panneau "action" de l'image clé n°1, placez le code suivant pour obtenir l'animation ci-dessous.
 
amplitude = 60;
coefficient = - 0.85;
x0 = clip._x; 
 
onEnterFrame = function() {
clip._x = x0 + amplitude;
amplitude *= coefficient;
if(Math.abs(amplitude) < 0.01) {amplitude = 60;}
}
 

 
4. Le code avec ses commentaires
 
On initialise un premier paramètre qui définira l'amplitude du tremblement.
amplitude = 60;
 
Le paramètre "coefficient" a une importance fondamentale : c'est lui qui définira la rapidité avec laquelle le tremblement cessera. Proche de -1, le tremblement durera longtemps tandis que proche de zéro le tremblement sera très court. Attention ce paramètre est impérativement négatif et compris entre -1 et 0 !
coefficient = - 0.85;
 
x0 est la valeur initiale de l'abscisse de l'occurrence qui s'appelle "clip". Le déplacement de cette occurrence sera centré autour de cette abscisse.
x0 = clip._x;
 
On crée une fonction qui sera appelée à chaque image.
onEnterFrame = function() {
 
On définit la nouvelle abscisse de l'occurrence qui s'appelle "clip".
clip._x = x0 + amplitude;
 
On multiplie l'amplitude par la valeur du coefficient. Le signe de l'amplitude change à chaque image (car le coefficient est négatif) et sa valeur absolue diminue (car la valeur absolue du coefficient est inférieure à 1). C'est pour ces deux raisons que l'occurrence "clip" va osciller de part et d'autre de l'abscisse x0 tout en s'en approchant de plus en plus...
amplitude *= coefficient;
 
Quand la valeur absolue de l'amplitude est suffisamment petite (c'est à dire lorsque le tremblement devient imperceptible), on redonne au paramètre "amplitude" sa valeur initiale 60. Et le tremblement recommence...
if(Math.abs(amplitude) < 0.01) {amplitude = 60;}
 
fin de la fonction et de ce tutoriel. J'attends les commentaires, les critiques... < : -)
}