Problème avec Tween

Résolu
thenaoh Messages postés 111 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 24 juin 2015 - 21 janv. 2007 à 18:46
thenaoh Messages postés 111 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 24 juin 2015 - 21 janv. 2007 à 21:46
Bonjour à tous !

Après avoir lu quelques bouquins, je me suis lancé récemment dans la réalisation de mon 1er site web en flash.
Il se trouve que je suis confronté au problème suivant : Dans une classe qui contiens tous les éléments graphiques affichés à l'écran, je souhaite faire les 2 tâches suivantes :
 - utiliser Tween pour faire disparaître progressivement le MovieClip masqueIntro_mc
 - à la fin de cette animation, lancer une seconde méthode (lancerAnimZoneGauche).

Mon problème est que, bien que l'animation se déroule comme prévu, la méthode lancerAnimZoneGauche() n'est jamais appelée. Ainsi, le code ci-dessous n'affiche à l'écran que "animation fondu finie", mais pas "lancement de lancerAnimZoneGauche" ....

private function initAnimation():Void
{
      // Fondu enchaîné :
      var tweenMasqueIntro:Tween = new Tween(masqueIntro_mc, "_alpha", Regular.easeOut, 100, 0, 12, false);
      var listenerMasqueIntro:Object = new Object ();
      listenerMasqueIntro.onMotionFinished = function ():Void
      {
            lancerAnimZoneGauche();
            trace ("animation fondu finie");
      }



      tweenMasqueIntro.addListener(listenerMasqueIntro);
}




private function lancerAnimZoneGauche():Void
{
      trace ("lancement de lancerAnimZoneGauche");

}

J'ai également essayé en remplaçant l'appel :
      lancerAnimZoneGauche();
par :
      monOccurence.lancerAnimZoneGauche();
où monOccurence stocke une instance de la classe où se trouvent ces méthodes, mais sans succès...

Si qqn a une idée, elle est la bienvenue ! Merci par avance pour votre aide

1 réponse

thenaoh Messages postés 111 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 24 juin 2015
21 janv. 2007 à 21:46
Bon ben en fait j'ai trouvé tout seul

Pour info, il faut remplacer l'appel :
      lancerAnimZoneGauche();
par :
      monOccurence.lancerAnimZoneGauche();

et rajouter en début de initAnimation() la ligne suivante :
      var monOccurence:Scene = this;
où Scene est le nom de la classe en question.

Manifestement, ça marche mieux en déclarant monOccurence dans la méthode plutôt qu'en attribut de classe. Venant du monde java, ça me laisse dubitatif .... mais ça marche
3
Rejoignez-nous