[actionscript] bannière defilante : une seule image défile

bannière defilante : une seule image défile [actionscript] - Flash/ActionScript - Programmation

Marsh Posté le 26-01-2009 à 10:23:50    

Bonjour,
 
Voilà, je fais une bannière pour un site. Celle ci charge les images par un fichier xml, ensuite j'appelle une fonction qui devrait les faire bouger, toutes, et se suivre. Mais il n'y a que la dernière image chargée qui bouge.
 
J'ai essayé de changer l'appel de ma fonction bouge, de place, mais ça ne change rien.
Si je crée un mc vide, il y aura un moment où j'aurais que du blanc, non ? le temps que le clip se termine pour pouvoir recommencer ... ?
 
De plus, j'aimerais que à partir de x=800, plus rien ne s'affiche (que la photo disparaisse au fur et à mesure de sa progression).
 
Merci d'avance
 

Code :
  1. // importation des images depuis le fichier photos.xml
  2. var chargeurXML : URLLoader = new URLLoader(new URLRequest("photos.xml" ));
  3. chargeurXML.dataFormat=URLLoaderDataFormat.TEXT;
  4. chargeurXML.addEventListener(Event.COMPLETE, chargementImage); // écoute quand chargement terminé
  5. var timer:Number;
  6. var photoEnTete:Sprite;
  7. var chargeur:Loader;
  8. // fonction qui fait se déplacer les images
  9. function bouge (){
  10. photoEnTete.x-=-0.1;
  11. if (photoEnTete.x==800){ // quand la photo est arrivée à la fin de la bannière
  12. photoEnTete.x=-200; // elle se replace en tête pour recommencer
  13. }
  14. clearInterval(timer); // arret du timer
  15. }
  16. // importation des images depuis le fichier xml ; Quand le telechargement est terminé
  17. // on les affiche défilantes (appel la fonction bouge)
  18. function chargementImage (e:Event):void{
  19. var objectXML = new XML(chargeurXML.data);
  20. var i:int=0;
  21. for each (var noeudEnCours in objectXML.img) {
  22. photoEnTete = new Sprite();
  23. chargeur = new Loader();
  24. photoEnTete.name=noeudEnCours.@adresse;
  25. chargeur.load (new URLRequest("images/"+photoEnTete.name+".jpg" ));
  26. photoEnTete.x=200*i; // placement des photos sur x
  27. trace(i+":::"+photoEnTete.name+":::"+photoEnTete.x);
  28. photoEnTete.y=90; // placement des photos sur y
  29. timer = setInterval(bouge,10); // lance le timer qui appel la fonction bouge toutes les 10 milli-secondes
  30. photoEnTete.addChild(chargeur);
  31. addChild(photoEnTete);
  32. trace (timer);
  33. i++;
  34. }
  35. }

Reply

Marsh Posté le 26-01-2009 à 10:23:50   

Reply

Marsh Posté le 29-01-2009 à 16:31:29    

normal, photoEnTete est unique... il ne s'auto-implémente pas, donc, chaque photo importé prend l'identité de l'avant derniere ...  
et pour ne pas cité une certaine série, "A la fin, il ne peut en rester qu'un"...
Bref, clarifie ta boucle


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed