Aller au contenu | Aller au menu | Aller à la recherche

Site membre du réseau Izardev et LCNET

Animation en Actionscript : Tween

Grâce aux classes Tween, on peut très facilement créer des animations dynamiquement en Flash avec Actionscript. Bien que l'utilisation de TweenLite ou TweenMax simplifie l'utilisation de la classe Tween, nous abordons en premier lieu l'utilisation de la classe Tween native.

Utilisation de Tween

Tween est la classe native fournie par Adobe pour créer des animations en Actionscript, son utilisation reste relativement simple; exemple, faisons bouger un clip (MovieClip) : la source de l'exemple sera à télécharger librement.

L'exemple montre une cible et une flèche, le but du jeu étant de déplacer dynamiquement la flèche vers le centre de la cible, au moment ou l'on clique sur un bouton monBouton.

Déplacez la cible ou vous le souhaitez, puis cliquez sur le bouton pour que la flèche se plante au centre :

Exemple d'utilisation de la classe Tween en Actionscript 3, la flèche se déplace vers le centre d'une cible.

Création de l'animation en Actionscript

Il suffit pour cela d'instancier un objet Tween, la flèche qui est un MovieClip, se déplace en hauteur et en largeur, nous allons donc pour la déplacer modifier ses attributs x et y pour qu'elle vienne se positionner au centre de la cible.

Importez tout l'abord la classe Tween :

import fl.transitions.Tween;

Puis lancez l'animation :

//new Tween(objet,attribut,methode de déplacement,état de départ, état d'arrivée, durée, utiliser les secondes comme unité);
var t:Tween = new Tween(this.fleche, "x", null, this.fleche.x, this.cible.x, 0.5, true);
var t2:Tween = new Tween(this.fleche, "y", null, this.fleche.y, this.cible.y, 0.5, true);

Pour plus de détail sur la classe Tween, reportez vous à la documentation officiel d'Adobe : Tween.

Ajout d'un callback à la fin de l'animation Tween

Il n'est pas rare de vouloir lancer une action à la fin d'une animation, dans l'exemple, vous constatez qu'une fois que la flèche a atteint (brillament) le centre de la cible, un message s'affiche pour vous féliciter. Nous allons donc nous servir des TweenEvent pour lancer cette action lorsque la flèche aura atteint son but :

t.addEventListener(TweenEvent.MOTION_FINISH, this.touche, false, 0, true);

La méthode touche() se chargera de féliciter l'utilisateur :

public function touche(evt:Event):void
{
    this.prompt.text = "Dans le mille ! félicitations ! ";
}

Attention la classe TweenEvent n'est pas situé dans le package flash.events.*, l'import à effectuer est le suivant :

import fl.transitions.TweenEvent;

Téléchargez la source FLA

tweens.zip 647,58 kB

Cette exemple contient :

  • La source FLA de l'animation Flash
  • La classe .as
  • le fichier SWF compilé

Conclusion

Il est très simple de créer des petites interpolations linéaires en Flash en utilisant la classe Tween native. Il existe néanmoins des librairies qui permettent d'étendre un peu le modèle et de le simplifier ; pour suivre une courbe de Bezier, ou manipuler plusieurs attibuts directement : il s'agit de TweenLite et TweenMax, dont nous aborderons l'utilisation dans un prochain article.

Articles connexes

Partagez cet article !

  • Delicious
  • Stumbleupon
  • Digg
  • Facebook
  • Google
  • Linkedin
  • Yahoo Buzz
  • Twitter
Vous avez apprécié cet article ?

Commentaires S'abonner au flux RSS des commentaires

  1. Les tweens ont de nombreux intérêt, en comparaison aux interpolations de mouvements...
    Déjà leur animation et mouvement sont plus fluide et on peux jouer avec plusieurs effets (bounce, elastic...) et vitesses.
    De plus, elles sont plus légéres en poid que les interpolations, ce qui reste un point intéressant, notament pour la création de banniére (pas ou trés peu de temps de chargement).
    Et ainsi pour faire déplacer des clips d'un axe x à un axe y, ça reste la meilleure chose :)
  2. Cela dépend de ce que vous souhaitez faire, avec une interpolation linéaire, vous ne pouvez que faire un parcours pré-établi, avec Tween, vous manipulez l'animation +/- comme vous le souhaitez.
    Il semble cela dit que Tween est relativement consommateur de ressources, en tout cas plus que les interpolations (notez que je l'ai constaté sur un projet AS2, ça a peut être changé en AS3).

    SI vous êtes graphiste et plus à l'aise avec les interpolations, utilisez-les, ce n'est pas une mauvaise pratique.
  3. Seb | Interpolation linéaire |
    Il vaut mieux utiliser l'interpolation linéaire ou la classe tween ?
  4. seb | Tween ou interpolation de mouvement ? |
    Il vaut mieux utiliser tween ou interpolation de mouvement ?

Ajouter un commentaire

Les commentaires sont tous validés par un modérateur, votre commentaire n'apparaît pas directement sur le site.
Aucun support n'est assuré ici, vous pouvez néanmoins laisser vos remarques et critiques sur l'article, les points de vue pertinents sont toujours les bienvenus.