Mon swf ne boucle pas

Mon swf ne boucle pas - Flash/ActionScript - Programmation

Marsh Posté le 25-09-2008 à 21:42:30    

Bonjour à tous,
 
j'ai un problème assez curieux, une animation (un diaporama) qui boucle sur un serveur (ovh) par exemple ne boucle pas sur un autre serveur (online.net). C'est à dire qu'une fois affiché l'ensemble des images (de 1 à 4), plus rien ne s'affiche.
Possible que ça joue suivant le serveur?
 
Pour info, voici le lien, vous trouverez le flash à gauche en bas pour vous rendre compte du bug.
Et mon code :

Code :
  1. import mx.transitions.Tween ;
  2. this._x = 0;
  3. this._y = 0;
  4. // ____________________________ PARAMETRES ____________________________________  
  5. nbImg = 1 ;
  6. alphaSpeed = speed_fade ; // vitesse de fading  
  7. tempo = speed_trans * 1000; // temps entre chaque transition en millisecondes  
  8. dirImg = path_dir_img ; // nom du dossier image  
  9. extention = "." + type_image ; // nom de l´extention des images  
  10. nomAnimation = id_logo;
  11. posLogoX = pos_logo_x ;
  12. posLogoY = pos_logo_y ;
  13. // ____________________________ CREATION DES CONTAINER _________________________  
  14. var container1 = this.createEmptyMovieClip("container1", this.getNextHighestDepth()) ;
  15. var container2 = this.createEmptyMovieClip("container2", this.getNextHighestDepth()) ;
  16. var logo = this.createEmptyMovieClip("logo", this.getNextHighestDepth()) ;
  17.     logo._x = posLogoX ; 
  18.    logo._y = posLogoY ;
  19. logo.attachMovie (nomAnimation, "logo", logo.getNextHighestDepth());
  20. NextContentLoader = container1;
  21. // _____________________________Gestion du load _________________________________  
  22. var my_mcl = new MovieClipLoader();
  23. var mclListener = new Object ();
  24. my_mcl.addListener(mclListener);
  25. mclListener.onLoadInit = function (target:Object) {
  26.       target._alpha = 0;
  27.       (target == container1) ? NextContentLoader = container2 : NextContentLoader = container1 ;
  28.       target.swapDepths(NextContentLoader);
  29.        var alphaImg:Tween = new Tween (target, '_alpha´,easing.Elastic.easeOut , 0, 100, alphaSpeed, true);
  30.        
  31.         alphaImg.onMotionFinished = function () {
  32.                idTimer = setInterval (timer, tempo) ;
  33.       } 
  34. }
  35. mclListener.onLoadError = function () {
  36.       nbImg = 1 ;
  37.      MovieLoad ();
  38. }
  39. // __________________________ FONCTIONS DIVERSES  _________________________  
  40. function MovieLoad () {
  41.         my_mcl.loadClip(dirImg + nbImg + extention, NextContentLoader);
  42. }
  43. function timer () {
  44.      if (i < 1000)
  45.         {
  46.            i++ ;
  47.        } 
  48.       else 
  49.            {
  50.                clearInterval(idTimer);
  51.              nbImg++;
  52.                 MovieLoad ();
  53.            }
  54. }
  55. MovieLoad ();


 
Merci d'avance pour votre aide


Message édité par kameha le 25-09-2008 à 21:43:47
Reply

Marsh Posté le 25-09-2008 à 21:42:30   

Reply

Marsh Posté le 12-10-2008 à 17:31:22    

bonjour,
 
je suppose que c'est la gestion des fichiers inexistants qui varie selon le serveur.
En effet ton script boucle sur un répertoire pour récupérer tous les fichiers images qu'il contient, jusqu'à ce qu'il essaye de charger un fichier qui n'existe pas.
Dans ce cas il recommence sa boucle à partir de 1.
 
Sauf qu'apparemment sur online.net, la gestion des fichiers qui n'existent pas (erreur 404) ne doit pas être la même que sur OVH.
 
Bref, si tu sais que tu as 4 images dans ton diaporama, tu peux mettre ça en dur dans ton script.
Il suffit de remplacer ta ligne 62 :  

Code :
  1. nbImg++;


Par ceci :

Code :
  1. nbImg = nbImg < 4 ? nbImg+1 : 1;


Et si jamais un jour tu as 5 images, remplaces juste 4 par 5 dans cette ligne.
Bon du coup tu perds le côté dynamique du script donc dès que tu changes le nombre d'images, tu es obligé de republier ton SWF.


---------------
TFC4EVER
Reply

Sujets relatifs:

Leave a Replay

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