Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Nav sur les scènes à partir d'un clip
Envoyé: 20 mai 2004, 21h46 par Fredo d;o)
Je m'y suis encore re-penché sur la question, et je crois avoir trouvé 2 solutions qui fonctionnent bien (chez moi en tout cas) et même si elles ne sont pas très "zolies", je pense qu'elles peuvent quand-même dépanner dans certains cas...
Note : chaque fois que le mot "image" est utilisé, il fait référence aux "frames", et non pas à un fichier image...
- Navigation dans les scènes en utilisant des numéros d'images
La formule est toute simple, mais le calcul un peu moins... :-/
Admetons que nous avons 5 scènes comportant chacune 10 images dans leur scénario.
Admetons également que nous avons construit un clip comportant 5 boutons pour assurer la navigation entres les scènes et que nous l'avons posé dans la dernière image de chaque scénario.
Admetons enfin que le 3e bouton du clip doit poser la tête de lecture à l'image N° 6 du scénarion de la 3e scène, voici le code que nous devrions inscrire dans ce bouton du clip :
--
on (release) {
gotoAndStop (26);
}
--
Et pour l'image N° 2 de la scène N° 5 ce serait :
--
on (release) {
gotoAndStop (42);
}
--
Et oui, les plus perspicaces auront compris que Flash 5 (je ne sais pas pour les autres versions) calcule l'image cible en comptant le nombre "absolu" d'images existantes d'ans le projet à partir de la toute première scène... et ça marche !!! :-)
Mais bon, l'inconvénient de cette "bidouille" c'est que toute modification d'une scène implique un recalcul du nombre d'images absolus pour chaque bouton de navigation du clip... ce qui n'est pas très souple et efficace sur des gros projets.
- Navigation dans les scènes en utilisant des etiquettes dans les images
Cette méthode complique un peu (pas mal) les choses, mais elle a le grand avantage d'être plus souple et sûre que la précédente lors de modifications des différentes scènes.
Reprennons le même contexte que l'exemple précédent, mais en attribuant à chaque image cible de chaque scénario une étiquette, par exemple, dans notre cas, on pourrais la nommer "Scene3Image6" (sans espaces ni accents) ou plus concis pour diminuer les risques de fautes de saisie, comme "s3i6".
Malheureusement la formule qui fonctionnait bien dans la première solution n'est pas du tout opérationnelle avec les images "etiquettées" de toutes les scènes, sauf bien-sûr (!?) pour celles se trouvant dans la toute première scène (allez savoir pourquoi ?)... et c'est bien dommage que les autres scènes n'y bénéficient pas...
Alors, pour pouvoir naviguer sur les autres scènes il faut ruser un peu... ;-)
Nous allons donc réaliser une navigation par "redirection", c'est à dire que nous allons nous rendre, avec chaque bouton du clip, sur une image étiquettée de la première scène (qu'on aura crée préalablement à la fin de la scène), et qui à son tour nous "redirigera" sur la bonne image etiquettée de la bonne scène (je sais, c'est un peu tordu comme technique, mais ça a l'aire de marcher ;-))...
Pour essayer d'être plus clair, voici comment procéder pour l'image N° 6 de la scène N° 3 de l'exemple précédent :
1. Dans la prèmière scène nous créons une nouvelle image et nous lui attribuons une étiquette, par exemple "redir2s3i6"
2. Dans cette image que nous venons de créer, nous inscrivons le code de redirection suivant :
--
gotoAndPlay ("Scene3", "s3i6");
--
3. Enfin, nous inscrivons le code suivant dans le bouton N° 3 du clip :
--
on (release) {
_root.gotoAndStop("redir2s3i6");
}
--
Et voilà le travail... ça marche impec, et de cette manière on peut effectuer des modifications sur les images des différentes scènes sans casser la navigation... génial non ? :-)
Bon bon, vous l'avez compris, tout ceci est de la "grosse" bidouille, pas très élégante (je m'excuse auprès des puristes), et je suis sûr que d'autres vont trouver des solutions plus "propres" et efficaces (je l'espère), en attendant, je pense que ces astuces peuvent depanner dans certains projets...
Voilô :-)
Réponses
|