IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX] Gestion dynamique de liens


Sujet :

Flash

  1. #1
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut [FLASH MX] Gestion dynamique de liens
    Bonjour,
    J'ai un tableau qui contient une liste crée par la methode attachmovie avec un scroll bar.
    J'aimerai savoir comment faire pour qu'a chaque entree de la liste corresponde un lien ( je suppose avec un tableau) et cela de façon dynamique.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 41
    Par défaut
    Je n'ai pas compris ton problème, pourrais tu le reformuler.

  3. #3
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Citation Envoyé par bobgeldof7
    Je n'ai pas compris ton problème, pourrais tu le reformuler.
    +1

  4. #4
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    bon alors je reformule ! Je cree un tableau dynamiquement (code ci dessous) et je voudrai en fait associer a chauqe element de la liste (tableau) un lien http. Là j'ai que les menus, je voudrai savoir comment generer les liens pour chaque menus crées par la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    list = ["Adrastea", "Amalthea", "Ananke", "Callisto", "Carme", "Elara", "Europa", "Ganymede", "Himalia", "Io", "Leda", "Lysithea", "Metis", "Pasiphae", "Sinope", "Thebe"];
    // tableau des noms
    startingY=display.list._y;
    // occurence "list" ne pourra defiler si sa position y excède sa postion y de depart
    bottom=120;
    // limite de position inférieure
    function buildList(){
    	spacing=30;
    	//alignement vertical
    	var i=-1;
    	while(++i<list.length){
    		name="infoBar"+i;
    		// valeur de name ajusté selon valeur de i
    		y=i*spacing;
    		// variable de position de clip
    		display.list.attachMovie("infoBar",name,i);
    		//creation d'occurence
    		display.list[name]._y=y;
    		//position ajustee en fonction de la valeur de y
    		display.list[name].moonName.text=list[i];
    		display.list[name].moonNum.text=i+1;
    	}// remplissage des champs text avec les donnees
    }
    buildlist();
    function scroll(direction){
    	speed=10;
    	// vitesse de defilement
    	if (direction=="up"){
    		// determine si defilement du clip vers le haut peut avoir lieu
    		if (display.list._y-speed+display.list._height>(startingY+bottom)){
    			display.list._y-=speed;
    			// position de depart si occurence deplacée de 10 vers le haut
    			// position ensuite comparée a la limite de defilement
     
    		}else{
    			display.list._y=(startingY+bottom)-display.list._height;
    			// si deplacement depasse limite, occurence ajustee a sa limite autorisee
    		}
    	}else if (direction=="down"){
    		if(display.list._y+speed<startingy){
    			display.list._y+=speed;
    		}else{
    			display.list._y=startingY;
    		}// idem que plus haut
    	}
    }

  5. #5
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    A tester.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    var tabURL = ["http://...", "http://...", "http://...", ...];
     
    ...
       while(++i<list.length){ 
          name="infoBar"+i; 
          // valeur de name ajusté selon valeur de i 
          y=i*spacing; 
          // variable de position de clip 
          display.list.attachMovie("infoBar",name,i); 
          //creation d'occurence 
          display.list[name]._y=y; 
          //position ajustee en fonction de la valeur de y 
          display.list[name].moonName.text=list[i]; 
          display.list[name].moonNum.text=i+1; 
     
          display.list[name].onRelease= function() {
              getUrl(tabURL[i]);
          }
     
       }// remplissage des champs text avec les donnees 
    ...

  6. #6
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    quand je mets ce code et que je clique sur les boutons générés cela m'ouvre l'explorateur de fichiers du bureau !

  7. #7
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Tu es en OFFLINE ou en ONLINE??

  8. #8
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    Je testeen local mais je suis connecté en permanence, donc si cela marchait cela m'ouvrirai une nouvelle page.
    Pour te donner une idee de mon fichier, le code ci dessus sse trouve sur l'image 1 du calque "action".
    "Display" correspond à l'occurence qui est sur la scene ( aucun code n'y est attaché directement dessus) de "list display" a l'interieur duquel se trouve un _mc vide du nom de "list" qui charge les clips avec "attachmovie".
    Donc tout le code est sur l'image 1 du calque actions de la scene.

  9. #9
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    personne n'a d'idée ?

  10. #10
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Je ne suis mal exprimé. Tu es dans une page web (ONLINE) ou dans une projection (OFFLINE)

  11. #11
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    ben je suis en offline alors puisque le fichier swf n'est pas mis sur mon serveur encore.

  12. #12
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    Personne n'a jamais fais de liste de liens avec un menu dynamique ?
    Freegreg ton code me paraissait correct, je vois pas pourquoi cela ne génère pas des liens du tableau en fonction de i ?!

  13. #13
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Citation Envoyé par guy2004
    Personne n'a jamais fais de liste de liens avec un menu dynamique ?
    Freegreg ton code me paraissait correct, je vois pas pourquoi cela ne génère pas des liens du tableau en fonction de i ?!
    Ben si justement avec des getURL
    Tu l'as testé dans une page web? Ou seulement dans le prévisualisateur de Flash?

    Modifie-le et donnes-nous les résultats
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    display.list[name].onRelease= function() { 
              trace(i + " -> " + this._target); 
              getUrl(tabURL[i]); 
          }

  14. #14
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    je l'ai testé en offline seulement.
    Là cela me donne cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    16 -> /display/list/infoBar0
    et cela m'ouvre toujours la meme fenetre.

  15. #15
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    Si je mets en ligne avec ce code ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    list = ["Adrastea", "Amalthea", "Ananke", "Callisto", "Carme", "Elara", "Europa", "Ganymede", "Himalia", "Io", "Leda", "Lysithea", "Metis", "Pasiphae", "Sinope", "Thebe"];
    // tableau des noms
    var tabURL = ["http://www.voila.fr", "http://www.wanadoo.fr", "http://www.yahoo.fr", "http://www.yahoo.fr","http://www.voila.fr", "http://www.wanadoo.fr", "http://www.yahoo.fr", "http://www.yahoo.fr","http://www.voila.fr", "http://www.wanadoo.fr", "http://www.yahoo.fr", "http://www.yahoo.fr","http://www.voila.fr", "http://www.wanadoo.fr", "http://www.yahoo.fr", "http://www.yahoo.fr"]; 
    startingY=display.list._y;
    // occurence "list" ne pourra defiler si sa position y excède sa postion y de depart
    bottom=120;
    // limite de position inférieure
    function buildList(){
    	spacing=30;
    	//alignement vertical
    	var i=-1;
    	while(++i<list.length){
    		name="infoBar"+i;
    		// valeur de name ajusté selon valeur de i
    		y=i*spacing;
    		// variable de position de clip
    		display.list.attachMovie("infoBar",name,i);
    		//creation d'occurence
    		display.list[name]._y=y;
    		//position ajustee en fonction de la valeur de y
    		display.list[name].moonName.text=list[i];
    		display.list[name].moonNum.text=i+1;
    		display.list[name].onRelease= function() { 
              getUrl(tabURL[i]); 
          } 
     
    	}// remplissage des champs text avec les donnees
    }
    cela ne me donne rien lorsque je clique sur les liens générés.

    Si je fais une action "trace()" à chque clic cela me met "undefined".

    Je comprends pas car pour moi le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    isplay.list[name].onRelease= function() { 
              getUrl(tabURL[i]);
    appele bien le bouton généré dynamiquement avec la variable "name" et lui affecte une fonction de lien an fonction da la valeur de "i" du tableau tabURL ?!

  16. #16
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    C'est le i qu'il ne connait pas!
    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var prefix = "infobar"; // Hors de la boucle
    ...
    var name = prefix + i;
    ...
    getUrl(tabURL[this._name.substr(prefix.length)]);

  17. #17
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    Ca marche !! Merci Freegreg, t'as toujours de bons tuyaux ...mais il faut que tu m'expliques :
    Pourquoi tu as changé en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var prefix = "infobar";
    et ? Tu as fait d'une variable 2 variables si j'ai bien suivi ?!
    Pourrais tu m'expliquer un peu ton appel de "i" du tableau "tabURL", surtout la propriété "length" de la chaine ?
    Merci bcp

  18. #18
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Ben je suis parti du principe que la syntaxe était bonne, donc ce ne pouvait être que le i qui n'avait pas de valeur. Cela peut se comprendre, au moment du clic, le i n'existe plus depuis longtemps.
    Il fallait donc pouvoir le retrouver.
    Qu'est ce qui différencie chacun des boutons, leur nom. Or cela tombe bien ils ont le i en suffixe.
    Il suffisait donc de virer le prefixe "infoBar" pour l'obtenir.
    Deux solutions :
    Soit j'enleve les 7 premiers caractères de infoBar1, infoBar2 ... et je recupère le nombre.
    Soit j'essaye d'etre plus générique et anticipe d'eventuels changements de noms.
    Je crée donc la variable prefixe qui servira de base au nom du bouton.
    Ensuite, j'ai toujours le pb du i mais maintenant il n'est plus question d'enlever les 7 premiers caractères, j'enlève le nombre de caractères de ce prefixe. Cela revient au même, sauf que si tu decides d'appeler tes boutons toto1, toto2 ... cela marchera encore

    J'espère que tu as compris mon raisonnement et si c'est le cas penses à cliquer sur le bouton résolu

  19. #19
    Membre éclairé Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Par défaut
    Ok merci beaucoup Freegreg j'aurai pas pensé à faire ce cheminement car je comprenais pas pourquoi cela ne marchait pas.
    8)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/06/2006, 10h42
  2. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 12h26
  3. Réponses: 3
    Dernier message: 24/02/2006, 13h27
  4. [FLASH MX2004] Diaporama dynamique
    Par tougirl dans le forum Flash
    Réponses: 3
    Dernier message: 30/09/2004, 08h39
  5. [FLASH MX2004] Creation dynamique d'occurences
    Par WinBernardo dans le forum Flash
    Réponses: 2
    Dernier message: 21/08/2004, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo