Tutorial Flash : Rotation d'un objet
Introductions
Informations
Résultat

Ce tutorial présente une méthode pour faire tourner un Movie-Clip autour d'un autre avec ActionScript.
2. Le centre de rotation et l'objet
Nous allons commencer par définir le MC qui sera le centre de rotation.Pour cela tracez un petit cercle placé ici au centre de la scène (celui-ci peut très bien ne pas se trouver au centre, ce script fonctionnera tout de même) et convertissez le en MC nommé "centre".
Passons maintenant à l'objet que nous souhaitons faire tourner autour du MC "centre".
Sur un nouveau calque tracez un nouveau cercle (bleu cette fois) et convertissez le en MC nommé "balle".
4. Le code ActionScript (et un peu de trigonométrie...)
Pour écrire notre script nous allons avoir besoin d'un peu de trigonométrie.N'hésitez pas à aller jeter un œil dans vos cours de maths pour plus de détails ;-)
Imaginez un repère orthogonal dont le centre est celui de notre MC "centre" et dont les vecteurs X et Y sont respectivement les abcisses et ordonnés.
Pour notre tutorial nous avons juste besoin de connaitre les valeurs de X et de Y car celles-ci représentent les coordonnées d'un point toujours placé à la périphérie du cercle.
En trigonométrie ces coordonnées sont liés par la valeur de l'angle par les propriétés suivantes :
X = rayon * cos(angle)
Y = rayon * sin(angle)
Nous pouvons donc en définir que notre script utilisera les variables suivantes :
- X : valeur des abscisses
- Y : valeur des ordonnés
- Rayon : distance entre le centre et l'objet
- angle : valeur entre 0 et 2?
- vitesse : valeur permettant de contrôler le sens et la vitesse de rotation
Nous possédons maintenant toutes les informations utiles à la rédaction de notre script.
Si vous avez bien suivis vous devriez comprendre très facilement le fonctionnement de ces lignes :
Code-source : AS
var angle = 0;
var rayon = 100;
var vitesse = 0.1;
onEnterFrame = function()
{
balle._x = centre._x + rayon * Math.cos(angle);
balle._y = centre._y + rayon * Math.sin(angle);
angle += vitesse;
}





