Menu dynamique Flash et XML [Résolu]

Signaler
Messages postés
11
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 octobre 2009
-
Messages postés
11
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 octobre 2009
-
Bonjour,

je me tourne vers vous en espérant que pourrez résoudre mon problème.

Je me suis mis à l'actionscript il y a 2 jours pour les beoins d'un travail, et j'ai un peu de mal sur un point bien précis. Je dois créer un menu dynamique à partir d'un fichier XML. Le menu est composé d'images, celles-ci défilant en fonction de la position de la souris.

Je suis parvenu à afficher chaque image répertoriée dans le fichier XML, à la suite l'une de l'autre. Elle se placent correctement en fonction de la taille de la précédente, bref tous fonctionne comme je le désirais si ce n'est que je ne parviens pas à placer les liens correspondant à chaque image.

Je vous place le code :

document=new XML();
document.ignoreWhite=true;
document.load("monFichierXml.xml");


document.onLoad=function(ok)
 {
  if(ok)
  {
   afficherMenu();
  }
}
function afficherMenu()
{
 var lng = document.firstChild.childNodes.length;

   for (var i=0;i < lng;i++)
   {
    var x=document.firstChild.childNodes[i].attributes.url;
    var taille=document.firstChild.childNodes[i].attributes.largeur;
    var adresse=document.firstChild.childNodes[i].attributes.link;

    lien=createEmptyMovieClip("img"+i,i);
    lien._y= -42;

    if(i==0){lien._x= 0-(lng*(taille/2));}
    else{lien._x=0-(lng*(taille/2))+(taille*i);}

    lien.onRelease=function(){getURL(adresse,"_blank");}

    lien.loadMovie(x);
   }
}
stop();

Donc pour chaque childNodes du fichier XML, je crèe un movieClip avec des coordonées de construction. Mon idée était de placer un lien référencé dans le fichier XML sur chaque image au fur et à mesure de la lecture du fichier via l'attribut lien.onRealse=function(...).
Mais il ne place pas de liens du tout, l'image n'est même pas sensitive.

Savez-vous comment je peux m'y prendre ?

Merci

5 réponses

Messages postés
11
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 octobre 2009

Je n'ai rien dis, je suis allé un peu vite, ton code fonctionne parfaitement en fait, désolé.
Messages postés
1204
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Salut,

en chargeant une image dans 'lien' tu écrase automatiquement toutes les autres action qu'il y avait dessus avant le chargement, dont entre autre le onRelease...

l'idée serait de créer dans lien, un clip container qui va recevoir l'image :

document=new XML();
document.ignoreWhite=true;
document.load("monFichierXml.xml");



document.onLoad=function(ok)
 {
  if(ok)
  {
   afficherMenu();
  }
}
function afficherMenu()
{
 var lng = document.firstChild.childNodes.length;

   for (var i=0;i < lng;i++)
   {
    var x=document.firstChild.childNodes[i].attributes.url;
    var taille=document.firstChild.childNodes[i].attributes.largeur;
    var adresse=document.firstChild.childNodes[i].attributes.link;

    lien=createEmptyMovieClip("img"+i,i);
    container=lien.createEmptyMovieClip("container",1);

    lien._y= -42;
    lien._x=0-(lng*(taille/2))+(taille*i);
    lien.adresse=adresse
    lien.onRelease=function(){getURL(this.adresse,"_blank");}

    lien.loadMovie(x);
   }
}
stop();







@+
Messages postés
1204
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
oups,

j'ai été trop vite :

changer lien.loadMovie(x);
par container.loadMovie(x);

@+
Messages postés
11
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 octobre 2009

Parfais, je pense avoir compris. Je vais essayer cela dès ce soir.
Merci pour ton aide.

@+
Messages postés
11
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
9 octobre 2009

Ok, je viens d'essayer, j'ai juste retiré
lien.adresse=adresse
et j'ai remplacé
lien.onRelease=function(){getURL(this.adresse,"_blank");}par
lien.onRelease=function(){getURL(adresse,"_blank");}
parce que je rencontrais quelques soucis et tout fonctionne parfaitement maintenant.

Encore merci pour le coup de main.

Ciao