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

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [xml&flash8] un bandeau panoramique en AS et XML

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[xml&flash8] un bandeau panoramique en AS et XML

n°1522624
nina dj
Posté le 02-03-2007 à 02:15:35  profilanswer
 

bonsoir à tous,
d'apres un tuto, j'ai créé un bandeau panoramique qui boucle sur lui meme. Pour cela j'ai créé en AS 2 movie clips conteneurs qui comportent chacuns autant de movieclip qu'il y a d'images dans mon xml. Quand ma souris est du coté droit, les conteneurs défilent vers la droite et inversement vers la gauche.
Le probleme c'est quand je teste mon anim, flash plante (il me semble que c'est mauvais signe) ou me renvoie une alerte qui me préviens que le script va faire ramer l'application .
Voila mon code AS (sur l'image 1 de la scène 1)

Code :
  1. //on cree un objet XML
  2. var photo_xml: XML = new XML();
  3. photo_xml.ignoreWhite = true;
  4. photo_xml.onLoad = function(ok){
  5. if(ok){
  6.  //trace ("chargement réussi" ); ok
  7.  noeudRacine=photo_xml.firstChild;
  8.  noeuds=noeudRacine.childNodes;
  9.  //nombre de photo
  10.  nbPhotos=noeuds.length;
  11. }
  12. }
  13. /////////////////////////////////
  14. // appel du xml au chargement //
  15. photo_xml.load("bibliotheque.xml" );
  16. // creation objet
  17. _root.createEmptyMovieClip("conteneur01",1);
  18. //dans conteneur on cree autant de mc qu'il y a d'images
  19. for (i=0; i<=nbPhotos; i++){
  20. conteneur01.createEmptyMovieClip("evennement_mc"+i, i);
  21. loadMovie(img.attributes.chemin, "evennement_mc"+i);
  22. i++;
  23. }
  24. //idem avec le second:
  25. _root.createEmptyMovieClip("conteneur02",1);
  26. for (i=0; i<=nbPhotos; i++){
  27. conteneur02.createEmptyMovieClip("evennement_mc"+i, i);
  28. loadMovie(img.attributes.chemin, "evennement_mc"+i),
  29. i++;
  30. }
  31. //les variables
  32. var largeur_scene = 600;
  33. var largeur_conteneur = conteneur01._width;
  34. _root.onEnterFrame = function(){
  35. deplacement = _xmouse;
  36. deplacement = deplacement - (largeur_scene/2);
  37. deplacement = deplacement/20;
  38. conteneur01._x = conteneur01._x + deplacement;
  39. conteneur02._x = conteneur02._x + deplacement;
  40. //droite
  41. if(conteneur01._x>=largeur_scene){
  42.  conteneur01._x = conteneur02._x - largeur_conteneur;
  43.  }
  44. if(conteneur02._x>=largeur_scene){
  45.  conteneur02._x = conteneur01._x - largeur_conteneur;
  46.  }
  47. //gauche
  48.  if (conteneur01._x+largeur_image<=0){
  49.  conteneur01._x=conteneur02._x+largeur_conteneur;
  50.  }
  51.  if (conteneur02._x+largeur_image<=0){
  52.  conteneur02._x=conteneur01._x+largeur_conteneur;
  53.  }
  54. }//fin du enterframe
  55. stop();


 
 
le fichier xml
 s'appele bibliotheque :

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <galerie>
  3. <img num="1" nom="fly1" date="10/10/2007" legende="légende 1" chemin="images/a.jpeg" lien="http://www.google.fr">
  4. <img num="2" nom="fly2" date="10/10/2006" legende="légende 2" chemin="images/b.jpeg" lien="http://www.google.fr">
  5. <img num="3" nom="fly3" date="10/10/2005" legende="légende 3" chemin="images/c.jpeg" lien="http://www.google.fr">
  6. </galerie>


 
merci a tous ceux qui voudront bien me répondre.
 :jap:  
***^_^***
bonne nuit tout le monde

mood
Publicité
Posté le 02-03-2007 à 02:15:35  profilanswer
 

n°1522867
Zedlefou
In cabbage we trust !
Posté le 02-03-2007 à 14:50:54  profilanswer
 

A vu de pif c'est une boucle for qui s'arrête jamais. Comme t'en a 2 avec comme paramétre "nbPhotos", il doit être undefined ou un truc comme ça.

 

Juste après
nbPhotos=noeuds.length;
rajoute
trace(nbPhotos);

 

et mets-en un aussi dans la boucle for.
trace("dans la boucle : "+nbPhotos);

 

Ca peut venir du XML tout simplement ou alors de la variable qu'il ne retrouve pas. Dans ce cas tu la passe en _global.


Message édité par Zedlefou le 02-03-2007 à 14:54:39

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1522954
craps_youp​la
Posté le 02-03-2007 à 16:25:45  profilanswer
 

en effet, rajoute var nbPhotos:Number; sur la toute première ligne. il va la trouver même si elle est hors du scope de onLoad, c'est une drôle de particularité d'implémentation de Flash, qui est logique dans le contexte membres/classes de l'AS2, illogique dans le contexte AS1/timeline, mais pratique.
 
vachement pratique pour faire ça :
 

Code :
  1. var me:MovieClip = this;
  2. foo = new XML();
  3. foo.onLoad = function(){
  4. // tiens, ça marche, mais ça devrait pas normalement...
  5. trace(me);
  6. // puisque le scope est pas bon:
  7. trace(this);
  8. }


 


Message édité par craps_youpla le 02-03-2007 à 16:35:35
n°1524108
nina dj
Posté le 05-03-2007 à 22:48:16  profilanswer
 

coucou ca marche!!!
merci pour le coup de pouce et surement à bientot car je sent que je suis pas sortie de l'auberge avec cette anim
a plus


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

  [xml&flash8] un bandeau panoramique en AS et XML

 

Sujets relatifs
Attendre la fin du chargement d'un fichier XMLAjax Probleme Open fichier XML IE7
Compiler un ensemble de fichiers (XML + images)Demande d'approbation de votre part pour une structure XML...
Stockage de date dans un fichier XMLPassage de XHTML en XML : Imbriquer section
erreur de parsing XMLaffichage flux rss en bandeau
Clic dans une balise panoramiqueRecuperer une variable XML via PHP
Plus de sujets relatifs à : [xml&flash8] un bandeau panoramique en AS et XML


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