4. DÉVELOPPEMENT DE LA GALERIE
C’est parti. Nous avons besoin de deux symboles pour cette galerie. L’un contiendra les images et leurs titres respectifs, et l’autre sera le bouton nous permettant de naviguer. Nous allons commencer par créer le bouton.
Sur la scène qui à l’heure actuelle est vierge, dessinez un petit carré (outil rectangle avec la touche MAJ enfoncée lors du traçage) d’une couleur noir, sans contour. Sélectionnez ce carré puis convertissez-le en symbole de type clip et nommez-le «bouton».Cliquez sur le bouton «Option avancée» et cochez la case «Exporter pour ActionScript». La case juste en-dessous va automatiquement se cocher et les champs texte «Classe» et «Classe de base» également. Cliquez sur «OK» pour valider, un avertissement apparaît, cliquez une fois de plus sur «OK». Vous pouvez à présent supprimer l’occurrence du symbole que vous venez de créer de la scène. En effet, pas besoin de le conserver, nous allons écrire quelques lignes de code qui mettront sur la scène à un endroit bien précis autant de boutons que vous aurez d’images dans votre XML. La vie est bien faite quand même hein !
Nous devons à présent créer un nouveau symbole (Insertion > Nouveau symbole), toujours de type «Clip» que l’on nommera «photo» et que l’on exportera également pour ActionScript. Validez et cliquez une fois de plus sur «OK» pour ignorer l’avertissement. Rendez vous sur l’image 1 de votre séquence 1 puis allez dans les panneaux d’actions. Nous devons dans un premier temps créer un loader qui va nous permettre de charger les données de notre fichier XML :
J’indique l’emplacement de mon fichier XML au loader et lui dis de le charger :
Nous devons ensuite créer une « écoute » afin de savoir quand le loader est prêt :
Une fois prêt, nous lançons la function XMLLoaded grâce à l’écouteur ci-dessus :


Cette fonction est peut-être un peu agressive à première vue mais il n’y a rien de bien compliqué. On commence par créer une variable contenant les données du target de l’event, à savoir du loader et donc du fichier XML :
var xml:XML = new XML(e.target.data);
On a ensuite une petit boucle qui en gros attribue à chaque élément «creation» du XML un numéro. Ainsi, si on regarde dans le XML, comme on a 5 éléments «creation», on les numérote de 1 à 5.for(var i=0; i<xml.creation.length();i++){
Toute la partie qui suit consiste à aller chercher l’image et le titre de l’item création à afficher dans le tableau de données XML en fonction du numéro (i) de l’image à afficher. Par défaut, c’est l’item0 (le premier) qui s’affichera :

Dans la boucle suivante on met en place les différents boutons. Il ya un bouton qui se crée automatiquement pour chacune des images à afficher :

Pour définir la position du bouton, comme vous pouvez le voir ci-dessus, on commence par prendre sa largeur à laquelle on ajoute 10. On multiplie cette valeur par son id (i). Donc si on a affaire au premier bouton, comme l’ID est 0, alors on aurait 10 *0 soit 0. C’est pourquoi je rajoute 10. Comme cela même le premier bouton a une marge à gauche de 10 et se trouve donc à 10 pixels du bord gauche.
Comme je veux que mes boutons soient alignés, je veux donc qu’ils aient la même
valeur en Y. j’ai essayé plusieurs valeurs jusqu’à ce que je sois satisfait de
leur placement vertical. Nous devons à présent ajouter du code à l’intérieur
même du movie clip bouton. En effet, grâce à un petit jeu de variables, nous
allons vérifier si l’image affichée correspond au bouton qui vient d’être cliqué. Si ce n’est pas le cas, on fait le
nécessaire pour afficher la bonne image à l’aide des variables «elementEnCour»
et «imageActuel» principalement :

Pour finir, rendez vous a l’intérieur du clip «photo» et écrivez ceci :

Là encore rien de bien complexe, la fonction init se charge de créer sur la scène
un loader. Ce loader chargera l’image demandée grâce à la variable img, cette
même variable img qui obtient sur le root sa valeur à travers cette ligne :
photo[i].img=xml.creation[i].image;
Comme vous pouvez le constater ci-dessus, nous devons créer un champ de texte dynamique à l’intérieur du symbole photo toujours, et lui donner comme nom d’occurrence «champTitre». C’est ce champ de texte qui se chargera d’afficher le titre correspondant à l’image. Le fait de le replacer après l’arrivée du addChild du loader et donc de l’image nous permet de le placer au-dessus de l’image afin qu’il soit visible. Une fois ce champ de texte placé, la galerie fonctionne, vous pouvez tester grâce à un petit CTRL + ENTRER.