Menu dynamique Flash et XML

Résolu
Nashash Messages postés 11 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 octobre 2009 - 22 avril 2007 à 20:27
Nashash Messages postés 11 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 octobre 2009 - 24 avril 2007 à 21:15
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

Nashash Messages postés 11 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 octobre 2009
24 avril 2007 à 21:15
Je n'ai rien dis, je suis allé un peu vite, ton code fonctionne parfaitement en fait, désolé.
3
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
23 avril 2007 à 09:16
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();







@+
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
23 avril 2007 à 09:59
oups,

j'ai été trop vite :

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

@+
0
Nashash Messages postés 11 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 octobre 2009
24 avril 2007 à 09:50
Parfais, je pense avoir compris. Je vais essayer cela dès ce soir.
Merci pour ton aide.

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nashash Messages postés 11 Date d'inscription mercredi 25 février 2004 Statut Membre Dernière intervention 9 octobre 2009
24 avril 2007 à 21:10
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
0
Rejoignez-nous