deux movieClipLoader simultanés

deux movieClipLoader simultanés - Flash/ActionScript - Programmation

Marsh Posté le 20-07-2007 à 11:00:45    

bonjour à tous,
 
J'ai bien l'impression que l'on ne peut pas faire deux movieClipLoader en même temps...  
 
par exemple j'ai créé une fonction loadInClip, quand je l'execute sur un clip ça marche tres bien...
 
quand je l'execute sur deux clip, je vois ma barre de progression du premier clip qui a l'air de réagir pour les deux à la fois, et le second il boucle...
 
en résumé, voici mon code :
 

Code :
  1. // ActionScript Remote Document
  2. function loadInClip(clip,photo)
  3. {
  4. var mcLoader:MovieClipLoader = new MovieClipLoader();
  5. var mcListener:Object = new Object();
  6. mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number){
  7. xpourcent=bytesLoaded*100/bytesTotal;
  8. ////////trace("pourcent : "+Math.round(xpourcent));
  9. var thisTextField:TextField=loader.infos;
  10. thisTextField.antiAliasType = "advanced";
  11. thisTextField.embedFonts = true;
  12. thisTextField.gridFitType = "pixel";
  13. thisTextField.multiline = true;
  14. //thisTextField.styleSheet=styleObj;
  15. if(photo=="./" )
  16. {
  17. xpourcent=0;
  18. }
  19. thisTextField.htmlText = Math.round(xpourcent)+"%";
  20. thisTextField.wordWrap = true;
  21. loader.gotoAndStop(Math.round(xpourcent));
  22. }
  23. mcListener.onLoadInit = function(target_mc:MovieClip){
  24. //d'abord, je rentre la largeur et la hauteur de l'image original dans des variables intermédiaires:
  25. largeur = clip._width;
  26. hauteur = clip._height;
  27. clip._x=0;
  28. clip._y=0;
  29. //pour voir le changement, ca ne sert qu'à vérifier son code et ca n'apparait que dans flash.
  30. trace("after load width : "+largeur);
  31. trace("after load height : "+hauteur);
  32. //on teste pour savoir si l'image et plus haute ou plus large.
  33.  if (largeur >= hauteur )
  34.  {
  35.   ratio=hauteur/largeur;
  36.  //si elle est plus haute, on défini la valeur _height à 300 (valeur maximal du cadre dans le quel doit rentrer l'image)
  37.  if(largeur>parentClip.Mask._width)
  38.  {
  39.  clip._width = parentClip.Mask._width;
  40.  clip._height= clip._width*ratio;
  41.  if(clip._height>parentClip.Mask._height)
  42.  {
  43.   ratio=largeur/hauteur;
  44.  ////trace("here" )
  45.  clip._height= parentClip.Mask._height;
  46.  clip._width = clip._height*ratio;
  47.  }
  48.  }
  49.  }
  50. if (largeur < hauteur )
  51. {
  52.  ratio=largeur/hauteur;
  53.  //si elle est plus large, on défini la valeur _width à 200 (valeur maximal du cadre dans le quel doit rentrer l'image)
  54.  if(largeur>parentClip.Mask._width)
  55.   {
  56.   clip._height=parentClip.Mask._height;
  57.   clip._width =clip._height*ratio;
  58.  trace("plus haute" )
  59.   }
  60.  if(clip._width>parentClip.Mask._width)
  61.  {
  62.  ratio=hauteur/largeur;
  63.  clip._width= parentClip.Mask._width;
  64.  clip._height = clip._width*ratio;
  65.  }
  66. }
  67. if(largeur!=parentClip.Mask._width)
  68. {
  69. clip._x=(clip.Mask._width/2)-(clip._width/2);
  70. }
  71. if(hauteur!=clip.Mask._height)
  72. {
  73. clip._y=(clip.Mask._height/2)-(clip._height/2);
  74. }
  75. _global.lastDiapowidth=clip._width;
  76. _global.lastDiapoheight=clip._height;
  77. _global.lastDiapo_x=clip._x;
  78. _global.lastDiapo_y=clip._y;
  79. blink._width=clip._width;
  80. blink._height=clip._height;
  81. blink._x=clip._x;
  82. blink._y=clip._y;
  83. blink._alpha=100;
  84. }
  85.  mcLoader.addListener(this["mcListener"+loaderid]);
  86.  mcLoader.loadClip(""+photo+"", clip);
  87.  }
  88. }

Reply

Marsh Posté le 20-07-2007 à 11:00:45   

Reply

Marsh Posté le 20-07-2007 à 15:48:53    

C'est parce que tu utilises la même référence McLoader.
J'ais abordé le probléme ici
http://forum.hardware.fr/hfr/Progr [...] 3389_1.htm
 
En gros il faut que soit tu transformes ton code en class. Soit que tu changes le nom de tes références à chaque fois que tu lances la fonction.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 20-07-2007 à 15:53:40    

J'imaginais bien que c t un probleme de ce genre... d'ailleurs j'avais essayé de remplacer mes
 
 var mcLoader:MovieClipLoader = new MovieClipLoader();
 
par  
 
 this['mcLoader'+id]=new MovieClipLoader();
 
... histoire de ne pas avoir les mêmes reférences... mais ça n'a pas changé mon probleme...

Reply

Sujets relatifs:

Leave a Replay

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