Boutons dynamiques en Flash

Le challenge...
Flash permet de faire des menus de navigation très agréables... mais lors de la phase de mise au point, alors que la strucure du site et les noms des éléments de menu ne sont pas encore connus avec précision, il est fastidieux d’avoir à recommencer son menu 10 fois... Peut-être que l’astuce suivante peut aider à améliorer les choses ?
L’astuce !
Pourquoi ne pas concevoir un seul élément de menu sous Flash, puis d’en empiler autant de copies que le menu le nécessite, et enfin leur passer leurs paramètres (adresse, cible, étiquette...) directement au sein de la page html ? Cela éviterait les multiples retouches sur le .fla et donnerait une remarquable souplesse pour l’élaboration du menu.
La réalisation :
1 - Créez une zone de texte dynamique : sous Flash MX, dans une animation vide créer une zone de texte dynamique. Décochez la case ’sélectionnable’ [1] puis saisissez un nom dans ’var’. Choisissez la police de caractères, la couleur, et les différentes caractéristiques qu’aura votre bouton en position non-survolée [2].

2 - Transformez-la zone de texte en bouton : une fois la zone céée pressez ’f8’ pour transformer ce symbole en bouton. Double-cliquez sur ce bouton, puis créez un état ’survolé’ en insérant une ’image clé’ dans la case ’dessus’. Pour cet état, sélectionnez une nouvelle couleur de caractère (ou toute autre caractéristique qui permette de différencier les 2 états ’haut’ et ’dessus’).

3 - Définissez le lien : retournez sur la séquence, puis pressez ’f9’ pour faire apparaitre les actions. Créez une nouvelle action pour le bouton : action -> navigateur -> geturl. Comme url saisissez ’adresse’ et comme fenêtre ’cible’ (assurez-vous que les cases ’Expression’ sont bien cochées toutes les 2 puisque adresse et cible sont des expressions). Saisissez une action pour l’image 1 du calque 1 : actions -> controle -> stop (ceci évitera que l’animation boucle sur elle-même).

4 - Publiez l’animation : en pressant sur ’maj+f12’ l’animation est publiée. Un fichier swf prêt à l’emploi est généré, de même que la page html qui le contient. Est-ce que visualiser la page telle quelle va donner un résultat ? ... Non, car les paramètres ne sont pas encore passés !

5 - Passez les paramètres : au sein de la page html, les paramètres ’etiquette’, ’adresse’ et ’cible’ se passent en même temps, sur la ligne de commande :

<param name=movie value="mon_bouton.swf?etiquette=Bonjour !&adresse=salut.html&cible=_self">


Il existe une autre méthode (apparemment plus fiable du coté des accents...) pour passer les paramètres "etiquette" "adresse" et "cible" à l’animation Flash : il s’agit d’utiliser le tag FlashVars. D’abord définir une balise de parametres appelée FlashVars :

<param name="FlashVars" value="etiquette=Bonjour !&adresse=salut.html&cible=_self">


Il faut ensuite remettre le parametre FlashVars dans la balise embed :

<embed [...] FlashVars="etiquette=Bonjour !&adresse=salut.html&cible=_self" [...] >


6 - affichez le résultat !

PS : n’oubliez pas de lire l’article sur la bonne syntaxe de la balise object pour intégrer proprement du flash