Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1172 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  problème de chemin ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de chemin ?

n°1295204
an3k
powered on macintosh ^^
Posté le 30-01-2006 à 22:31:07  profilanswer
 

salut les gens !
j'ai essayé de créer une galerie, mais depuis 15h je suis bloqué sur un truc : les liens associés à mes images !!!
normalement, le script va cercher les variables dans le xml, il affiche les images, qui doivent pointer vers un lien. Ce que je ne comprend pas, c'est que mon rollover marche bien !
voici le code, je sui désolé il n'y a pas de commentaires.
sur ma premiere image de mon premier calque
 

Code :
  1. movieClip.prototype.loadGalerieFromXml = function(file, zoneTaille, zoneHauteur, zoneEspace, affichage, nombre) {
  2. this.galerieXml = new XML();
  3. this.galerieXml.parent = this;
  4. this.galerieXml.ignoreWhite = true;
  5. this.galerieXml.onLoad = function() {
  6.  this.parent.zoneTaille = zoneTaille;
  7.  this.parent.zoneTaille = zoneHauteur;
  8.  this.parent.zoneEspace = zoneEspace;
  9.  this.parent.picsLoaded = true;
  10.  this.parent.affichage = affichage;
  11.  this.parent["nb"+affichage] = nombre;
  12.  this.parent.galeriev = this.firstChild.childNodes;
  13.  this.parent.lon = this.parent.galeriev.length;
  14. // pour le slide
  15.  var lon2 = this.parent.galeriev.length;
  16.  _root.onEnterFrame = function() {
  17.   _root.conteneur.long = (lon2*27-80)*(-1/86);
  18.  };
  19. // ca me sert à commaitre la hauteur du bidule
  20.  for (var i = 0; i<this.parent.lon; i++) {
  21.   var nom = this.parent.galeriev[i].attributes.nom;
  22.   this.parent.createEmptyMovieClip("bitmap_mc"+i, i+10);
  23.   this.parent["bitmap_mc"+i].loadMovie(nom);
  24.   this.parent["url"+i] = this.parent.galeriev[i].attributes.urls;
  25.   trace(this.parent["url"+i]);
  26.  }
  27.  this.parent.onEnterFrame = function() {
  28.   this.picsLoaded = true;
  29.   for (var i = 0; i<this.lon; i++) {
  30.    if (this["bitmap_mc"+i].getBytesLoaded() != this["bitmap_mc"+i].getBytesTotal() || this["bitmap_mc"+i].getBytesLoaded() == 0) {
  31.     this.picsLoaded = false;
  32.     break;
  33.    }
  34.   }
  35.   if (this.picsLoaded == true) {
  36.    trace("ok" );
  37.    this.onEnterFrame = null;
  38.    this.a = 0;
  39.    this.b = 0;
  40.    for (var i = 0; i<this.lon; i++) {
  41.     this["bitmap_mc"+i]._alpha = 30;
  42.     this["bitmap_mc"+i].onRollOver = function() {
  43.      this._alpha = 100;
  44.     };
  45.     this["bitmap_mc"+i].onRollOut = function() {
  46.      this._alpha = 30;
  47.     };
  48.     this["bitmap_mc"+i].onRelease = function() {
  49.      getURL(this["url"+i]);
  50.     };
  51. // c'est ici que ca coince ! et si je met trace(this["url"+i]); en dessous, bah ca marche ! (regardez) :
  52.     trace(this["url"+i]);
  53.     if (this.a == this["nb"+this.affichage]) {
  54.      this.a = 0;
  55.      this.b++;
  56.     }
  57.     this["bitmap_mc"+i]._x = (this.affichage == "Colonnes" ? this.a : this.b)*(this.zoneTaille+this.zoneEspace);
  58.     this["bitmap_mc"+i]._y = (this.affichage == "Colonnes" ? this.b : this.a)*(this.zoneHauteur+this.zoneEspace);
  59.     this.a++;
  60.    }
  61.    for (var i = 0; i<this.lon; i++) {
  62.     this.facteur = Math.max(this["bitmap_mc"+i]._width)/this.zoneTaille;
  63.     this.facteur = Math.max(this["bitmap_mc"+i]._height)/this.zoneHauteur;
  64.     this["bitmap_mc"+i]._xscale = this["bitmap_mc"+i]._yscale /= this.facteur;
  65.    }
  66.   }
  67.  };
  68. };
  69. this.galerieXml.load(file);
  70. };
  71. function go(destx) {
  72. _root.onEnterFrame = function() {
  73.  distpx = destx-conteneur._x;
  74.  _root.conteneur._x += distpx*(0.1);
  75.  if (Math.abs(distpx)<1) {
  76.   delete _root.onEnterFrame;
  77.  }
  78. };
  79. }
  80. _root.conteneur.tete.createEmptyMovieClip("galerie", 1);
  81. _root.conteneur.tete.galerie.loadGalerieFromXml("galerie.xml", 130, 25, 27, "Colonnes", 1);
  82. stop();


là en bas ca pointe vers tete, parce ce clip me sert à faire slider les images
si quelqu'un voit ce qui déconne, ou peut me conseiller un autre subterfuge (j'en ai essayé plein plein plein)...

Code :
  1. <gallerie>
  2.    <desc nom="1.jpg" urls="test1.html" />
  3.    <desc nom="2.jpg" />
  4.    <desc nom="3.jpg" urls="test2.html" />
  5.    <desc nom="4.jpg" urls="test3.html" />
  6.    <desc nom="5.jpg" urls="test4.html" />
  7.    <desc nom="6.jpg" urls="test5.html" />
  8. </gallerie>


le .fla à qui m'aidera...
 
merci


Message édité par an3k le 30-01-2006 à 22:34:49

---------------
An3k.com Création de sites web - mon tuto

mood
Publicité
Posté le 30-01-2006 à 22:31:07  profilanswer
 

n°1295443
mechkurt
Posté le 31-01-2006 à 12:34:00  profilanswer
 

trops le bordel ton code  :pfff:  
le prototype (release rollover) de tes boutons integres dans un this.parent.onEnterFrame verifiant la charge du truc (sauf que this.picsLoaded = true; donc ca sert a rien) lui même imbriqué dans le parsage du XML, c'est un peu le bordel, bien lourd, bien inutile et bien moche...
 [:airforceone]  
si j'ai un conseil à te donner c'est de separer le parsage du XML (instanciation des "bitmap_mc"+i application du prototype avec envoi en parametre de nom et url) et le prototype en lui même (comportement: chargement, release, rollover) de celui ci, car ton code doit pouvoir tenir en 15 20 lignes sans PB
 [:azitwaz]  
sinon tu ne dit pas quel est le PB ?
tes images s'affiche mais les liens ne sont pas cliquable ?


---------------
D3
n°1295462
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 12:51:50  profilanswer
 

mechkurt a écrit :

trops le bordel ton code  :pfff:  
le prototype (release rollover) de tes boutons integres dans un this.parent.onEnterFrame verifiant la charge du truc (sauf que this.picsLoaded = true; donc ca sert a rien) lui même imbriqué dans le parsage du XML, c'est un peu le bordel, bien lourd, bien inutile et bien moche...
 [:airforceone]  
si j'ai un conseil à te donner c'est de separer le parsage du XML (instanciation des "bitmap_mc"+i application du prototype avec envoi en parametre de nom et url) et le prototype en lui même (comportement: chargement, release, rollover) de celui ci, car ton code doit pouvoir tenir en 15 20 lignes sans PB
 [:azitwaz]  
sinon tu ne dit pas quel est le PB ?
tes images s'affiche mais les liens ne sont pas cliquable ?


j'ai récupèrer un e grande partie du code sur media-box.
et le soucis c'est bien que les liens ne fonctionnent pas, tandis que le roll over marche.


---------------
An3k.com Création de sites web - mon tuto

n°1295490
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 13:36:48  profilanswer
 

j'ai récris le code (enfin j'ai choppé un script plus simple et j'ai modif)

Code :
  1. //Recupération des donnees du fichier xml
  2. var galeriev = galerieXml.firstChild.childNodes;
  3. //nombre d'image à placer
  4. var lon = galeriev.length;
  5. for (var i = 0; i<lon; i++) {
  6. //recupére le nom du fichier
  7. var nom = galeriev[i].attributes.nom;
  8. // Création d'un clip vide:  
  9. _root.conteneur.tete.createEmptyMovieClip("bitmap_mc"+i, i+10);
  10. //charge le jpeg
  11. _root.conteneur.tete["bitmap_mc"+i].loadMovie(nom);
  12. //on crée la variable contenant le lien
  13. _root.conteneur.tete["urls"+i] = galeriev[i].attributes.urls;
  14. }
  15. // Déplacement du clip conteneur:
  16. for (i=0; i<lon; i++) {
  17. //on crée des variables pour simplifier le truc
  18. var chemin = _root.conteneur.tete["bitmap_mc"+i];
  19. var varUrl = _root.conteneur.tete["urls"+i];
  20. //maintenant on dispose les images
  21. chemin._y = i*27;
  22. //on crée un lien et un rollOver, et on change l'opacité, uniquement si il existe un lien dans le xml
  23. if (varUrl != undefined && varUrl != null) {
  24.  chemin._alpha = 30;
  25.  chemin.onRollOver = function() {
  26.   chemin._alpha = 100;
  27.  };
  28.  chemin.onRollOut = function() {
  29.   chemin._alpha = 30;
  30.  };
  31.  chemin.onRelease = function() {
  32.   getURL(varUrl);
  33.  };
  34. }
  35. }
  36. stop();


cette fois y'a les commentaires ;)
mais là carément le roll over ne marche plus, et par cnséquent le lien non plus... [:sisicaivrai]
la zone entiere de l'image n'est plus cliquable


Message édité par an3k le 31-01-2006 à 13:48:10

---------------
An3k.com Création de sites web - mon tuto

n°1295519
mechkurt
Posté le 31-01-2006 à 14:14:19  profilanswer
 

Code :
  1. //le comportement de mes images
  2. MovieClip.prototype.Slide = function(nb , nom, url) {
  3.     this.nb = nb ;
  4.     this.nom = nom;
  5.     this.url = url;
  6.     this.charge = false;
  7.     this._x = this.nb * 100;
  8.     this.loadMovie(this.nom);
  9.     this._alpha = 30;
  10.     this.onEnterFrame = function() {
  11.         if (!this.charge) {
  12.             //blah blah
  13.         } else {
  14.             //blah blah
  15.         }
  16.     }
  17.     this.onRelease = function() {
  18.         getURL(this.url);
  19.     }
  20.     this.onRollOver = function() {
  21.         this._alpha = 100;
  22.     }
  23.     this.onRollOut = function() {
  24.         this._alpha = 30;
  25.     }
  26. }
  27. //chargement du xml
  28. nb = 0;
  29. database = new XML();
  30. database.ignoreWhite = true;
  31. database.onLoad = function(done) {
  32.     if (done) {
  33.         currentnode = this.firstChild.firstChild;
  34.         while (currentnode.nodeName == "desc" ) {
  35.             nb++;
  36.             nom = currentnode.attributes.nom;
  37.             url = currentnode.attributes.url;
  38.             _root.createEmptyMovieClip("bitmap"+nb+"_mc" nb);
  39.             _root["bitmap"+nb+"_mc"].Slide(nb, nom, url);
  40.             currentnode = currentnode.nextSibling;
  41.         }
  42.     }
  43. };
  44. database.load("galerie.xml" );


le code n'est sans doute pas 100% fonctionnel (j'ai pas testé) mais vu la simplification, en partant de cette base tu devrais t'en sortir...


Message édité par mechkurt le 31-01-2006 à 17:17:01

---------------
D3
n°1295548
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 14:54:40  profilanswer
 

merci :)
mais j'ai un problème : il ne retourne pas bien les données xml...  il ne renvois que 4 noms, et 5 urls, alors que dans le cas présent j'ai 12 entrées dans le xml...


---------------
An3k.com Création de sites web - mon tuto

n°1295558
mechkurt
Posté le 31-01-2006 à 15:03:39  profilanswer
 

il saute lesquels: les premieres, les dernieres, n'imp ?


---------------
D3
n°1295570
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 15:11:49  profilanswer
 

les premières


---------------
An3k.com Création de sites web - mon tuto

n°1295579
mechkurt
Posté le 31-01-2006 à 15:20:12  profilanswer
 

le PB doit etre la : currentnode = this.firstChild.firstChild;
mets des trace(currentnode); pour voir dans la fenetre de sortie ce qui se passe...
 
peut etre aussi que tu as des noeuds mal ferme ou qui ne s'appelle pas desc...


---------------
D3
n°1295621
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 15:56:58  profilanswer
 

c'était le nb++
 
sinon bah j'ai pas l'impression qu'il execute le proto... aucune images, et quand je pet des trace() dans le proto il ne me renvoie rien :(
 
ca commence à devenir un peut tout compliqué pour une simple galerie :(
 
merci de ta patience en tous cas


Message édité par an3k le 31-01-2006 à 15:57:19

---------------
An3k.com Création de sites web - mon tuto

mood
Publicité
Posté le 31-01-2006 à 15:56:58  profilanswer
 

n°1295639
mechkurt
Posté le 31-01-2006 à 16:09:37  profilanswer
 

chez moi ca marche, envoie ton fla pour voir...


---------------
D3
n°1295656
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 16:24:50  profilanswer
 
n°1295672
mechkurt
Posté le 31-01-2006 à 16:38:16  profilanswer
 

change deja ces 2 choses:
-> Flash player 7 actionscript 2 ( a cause du parsage XML)
-> dans mon code remplacer creatEmptyMovieClip par createEmptyMovieClip (j'ai tapé le code de memoire et sans coloration syntaxique, toi par contre en collant le code tu aurais dut t'en apercevoir.)..
par contre ton fla refuse de complier sur ma becane, je peux donc pas tester plus...


---------------
D3
n°1295693
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 16:54:48  profilanswer
 

je suis souvent inatentif à certains truc :D
même chose, il refuse toujours le rollOver et les liens...
je vais réécrire le code de zéro, on va voir.


---------------
An3k.com Création de sites web - mon tuto

n°1295704
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 17:04:26  profilanswer
 

Code :
  1. //Recupération des donnees du fichier xml
  2. var galeriev = galerieXml.firstChild.childNodes;
  3. var lon = galeriev.length;
  4. //nombre d'image à placer
  5. _root.onEnterFrame = function() {
  6. //on envoie la hauteur au slide
  7. _root.conteneur.long = (lon*27-70)*(-1/76);
  8. //boucle
  9. for (var i = 0; i<lon; i++) {
  10.  //recupére les variables
  11.  var varNom = galeriev[i].attributes.nom;
  12.  var varUrl = galeriev[i].attributes.urls;
  13.  var chemin = _root.conteneur.tete["bitmap_mc"+i];
  14.  // Création d'un clip vide:  
  15.  _root.conteneur.tete.createEmptyMovieClip("bitmap_mc"+i, i+10);
  16.  //charge le jpeg
  17.  chemin.loadMovie(varNom);
  18.  //maintenant on dispose les images
  19.  chemin._y = i*27;
  20.  //on crée un lien et change l'opacité, si il existe un lien dans le xml
  21.  chemin._alpha = 30;
  22.  chemin.onRollOver = function() {
  23.   chemin._alpha = 100;
  24.  };
  25.  _root.conteneur.onEnterFrame = function() {
  26.   chemin.onRollOut = function() {
  27.    chemin._alpha = 30;
  28.   };
  29.   chemin.onRelease = function() {
  30.    trace(varUrl);
  31.   };
  32.  };
  33. }
  34. };


meme comme ca il ne veut pas...


---------------
An3k.com Création de sites web - mon tuto

n°1295718
mechkurt
Posté le 31-01-2006 à 17:22:15  profilanswer
 

c'est pas par esthetisme que je te fait separer le prototype du  XML, quand tu fait un loadMovie sur un clip, tous le code qui lui est associé est écrasé (ou zappé c'est comme tu veux) pendant (ou juste apres) le chargement de l'image, par contre avec un proto ca fonctionne...
 
fait un mix entre ton code et ce que je t'ai deja donné en mettant des trace() toutes les lignes pour debugguer, tu vas y arriver...


---------------
D3
n°1295721
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 17:26:14  profilanswer
 

avant même que tu le marques j'en ai fait un. mais j'ai toujours pas de roll over


---------------
An3k.com Création de sites web - mon tuto

n°1295733
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 17:50:21  profilanswer
 

est-ce qu'il ne faudrait pas définir la taille de la zone cliquable ?


---------------
An3k.com Création de sites web - mon tuto

n°1295748
mechkurt
Posté le 31-01-2006 à 18:05:51  profilanswer
 

Si tu charges une image, c'est toutes l'images qui deviendras zone cliquable...
met un trace(nom+" / "+url); pour voir si les parametres passent bien au proto...


---------------
D3
n°1295750
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 18:08:26  profilanswer
 

oui ca passe (avec urls, puisque url est deja pris dans flash)
depuis hier déjà !
sauf qu'hier j'avais le rollOver mais pas le release, aujourd'hui j'ai plus aucun des deux :/
http://an3k.site.voila.fr/index.html


Message édité par an3k le 31-01-2006 à 18:09:41

---------------
An3k.com Création de sites web - mon tuto

n°1295755
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 18:29:53  profilanswer
 

je comprend pas, j'ai jamais eu autant de probs avec un prog !!!
c'est encore plus bizarre si ca marche chez toi !
meme en créant un noueau fla, avec uniquement ton code, y'a pas le rollover, ni le lien. le prototype quand il dit this.rollOver ect... c'est pas valable que quand il est en train de se faire ?


Message édité par an3k le 31-01-2006 à 18:36:25

---------------
An3k.com Création de sites web - mon tuto

n°1295759
mechkurt
Posté le 31-01-2006 à 18:39:08  profilanswer
 

Code :
  1. //le comportement de mes images
  2. MovieClip.prototype.Slide = function(nb , nom, url) {
  3.        trace(nb+" / "+nom+" / "+url);
  4.     this.nb = nb ;
  5.     this.nom = nom;
  6.     this.url = url;
  7.     this.charge = false;
  8.     this._x = this.nb * 100;
  9.        this.createEmptyMovieClip("vide_mc",this.getNexthighestDepth(););
  10.     this.vide_mc.loadMovie(this.nom);
  11.     this._alpha = 30;
  12.     this.onEnterFrame = function() {
  13.         if (!this.charge) {
  14.             //blah blah
  15.         } else {
  16.             //blah blah
  17.         }
  18.     }
  19.     this.onRelease = function() {
  20.         getURL(this.url);
  21.     }
  22.     this.onRollOver = function() {
  23.         this._alpha = 100;
  24.     }
  25.     this.onRollOut = function() {
  26.         this._alpha = 30;
  27.     }
  28. }


et avec ca comme proto ?


---------------
D3
n°1295770
an3k
powered on macintosh ^^
Posté le 31-01-2006 à 18:47:24  profilanswer
 

ca marche nickel ! merci beaucoup.
en fait j'avais fait une zone cliquable hier aussi, mais j'avais pas réussi à lui faire passer les variables, je sais plus pourquoi !
bref, vraiment merci, et surtout pour la patience ;)


---------------
An3k.com Création de sites web - mon tuto

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  problème de chemin ?

 

Sujets relatifs
Récupérer le chemin de Program Files...[ problème avec la librairie gd ] transparence et miniatures
problème avec la fonction onBlurfonction Timer vide, problème ???
Problème avec le texteproblème avec le remplissage de champs
Probleme de chemin et de XML[background-image] Problème d'inclusion d'image (chemin)
Probleme pour indiquer le chemin d'1 JavaScript dans le code HTMLprobleme pour retirer le chemin d'un fichier
Plus de sujets relatifs à : problème de chemin ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR