Rejouer une animation flash

spip931 Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 31 décembre 2015 - 8 mars 2010 à 18:25
spip931 Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 31 décembre 2015 - 9 mars 2010 à 10:51
Comme l'indique la section dans laquelle se trouve ce post, je suis débutant en Flash.
Ensuite "Oui j'ai fait une recherche sur le forum" (voici d'ailleurs ce que j'ai trouvé : Ici.)et "non ça ne fonctionnne pas". Je dirais même que ça me provoque un nouveau problème.
Mais avant tout, je vais exposer mon (mes) problème(s) :
J'ai réalisé une animation d'une trentaine de secondes. J'ai de la musique en fond qui dure tout le long de mon anim. J'ai d'ailleurs des halos qui s'allument et qui s'éteignent au rythme de la musique comme s'il y avait des spots. Vers la fin, j'ai un logo composé d'un rond et d'un trait. J'ai animé les deux de façon à ce que le rond se déplace de droite à gauche (jusqu'à sa position finale) et laisse derrière comme une trainée matérialisée par mon trait.
Bon vous me direz "on s'en fout". Pour le moment "oui".

A la fin de mon anim, je fais apparaitre 2 boutons :
- Un bouton "Entrer" dans le site
- Un bouton "Rejouer l'animation"

Pour le premier bouton, j'ai fait un cadre texte, j'ai entré l'URL dans ses propriétés et ensuite je l'ai transformé en symbole Clip. Ça, ça fonctionne très bien.
Là où ça se corse, c'est pour le second "rejouer l'animation". Voilà ce que j'ai fait :
1 - J'ai créé un cadre texte dans lequel j'ai tapé "Rejouer l'animation"
2 - Je l'ai converti en bouton que j'ai appelé Rejouer
3 - J'ai appelé l'occurence de ce bouton Rejouer1
4 - Sur la première image où apparait ce bouton (autrement dit sur l'image clé), je suis allé dans le panneau Actions et j'ai collé le script trouvé sur le post précédement cité, à savoir :
rejouer1.OnPress = function () 
{
    this.gotoAndPlay('1');
}


Comme l'occurence de mon bouton s'appelle Rejouer1, j'ai donc mis ce nom et comme je voulais que ça rejoue à partir de la 1ere image, j'ai mis 1 après gotAndPlay
Cependant, j'ai 2 problèmes :
- Le premier c'est que Flash me met une Erreur "1120: Accès à la propriété non définie rejouer1."
- Le second (et c'est pour ça que j'ai parlé en détail de mon animation) c'est que maintenant, l'animation avec mon rond qui laisse un trait derrière lui, au lieu de se trouver au milieu de ma scène, se retrouve étrangement en haut .

Alors j'ai une solution de facilité :
Je mets un lien sur Rejouer comme pour Entrer sauf que je mets l'URL de la page où va se trouver l'animation. En gros, ça va recharger l'animation et de fait la rejouer.

Cependant, j'aimerai comprendre ce qui ne va pas dans mon script AS3 et aussi pourquoi mon anim de fin passe en haut.

Donc pouvez-vous SVP m'aider et me répondre, en n'oubliant pas que je suis un débutant ?

D'avance merci

"Mieux vaut se taire et passer pour un c... que de l'ouvrir et ne laisser aucun doute la-dessus."
Cependant, moi je préfère justement l'ouvrir, quitte à passer effectivement pour un c... (de toute manière on l'est toujours pour quelqu'un). J'espère qu'on m'expliquera et comme ça je le serai moins (c... ).

1 réponse

spip931 Messages postés 21 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 31 décembre 2015
9 mars 2010 à 10:51
Je viens de trouver sur un site anglais, donc je me réponds à moi même pour les débutants comme moi que ça intéresseraient :
Alors voici dans l'ordre ce qu'il faut faire :
1. Créer un calque que vous appelez bouton
2. Créer une image clé vide dans le scénario
3. Créer un cadre texte et écrire Rejouer l'animation
4. Transformer ce cadre texte en symbole Bouton et nommer l'occurrence du bouton rejouer_btn
5. Double cliquer sur ce symbole
6. Créer une image clé sur la position Haut, Dessus, Abaissé
7. Créer un calque que vous appelez Script rejouer
8. Créer une image clé vide
9. Aller dans la fenêtre Actions (ou F9)
10. Entrez le code suivant :
stop();
rejouer_btn.addEventListener(MouseEvent.MOUSE_UP,playAgain);
function playAgain(event:MouseEvent){
    gotoAndPlay(1);
}


Voilà.
Chez moi ça fonctionne et je n'ai plus du coup l'autre problème de décalage de mon rond et de mon trait.

Bien entendu, à la deuxième ligne du script j'ai mis rejouer_btn Ça correspond au nom de l'occurrence du bouton. Si vous donnez un autre nom à cette occurrence, pensez à rentrer ce nom dans le script.
Autre chose, là dans le script, avec gotoAndPlay(1) je lui dis "reviens à l'image 1 et joue l'animation". Cependant, rien ne vous oblige à revenir au début, à la 1ere image, vous pouvez indiquer l'image 5 ou 41, peu importe. Il vous suffit à ce moment là de rentrer le numéro de l'image d'où vous voulez qu'il rejoue en modifiant le chiffre entre parenthèses.

Voilà.
J'espère que ça en aidera plus d'un dans la panade.


"Mieux vaut se taire et passer pour un c... que de l'ouvrir et ne laisser aucun doute la-dessus."
Cependant, moi je préfère justement l'ouvrir, quitte à passer effectivement pour un c... (de toute manière on l'est toujours pour quelqu'un). J'espère qu'on
0