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

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  AS3 = probleme indicateur chargement d'images multiple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

AS3 = probleme indicateur chargement d'images multiple

n°2021263
guyton
Posté le 05-09-2010 à 18:59:34  profilanswer
 


Bonjour a tous,
 
Voici mon probleme...
 
j'ai un prechargement du "conteneurImage_perso" qui s'execute normalement avec la simulation de debit de flash CS4.
Hors, lorsque je le met sur serveur, j'ai un probleme sur ce loader. Les informations passent peut etre mal car sa clignote ou sa bug.
Je comprend vraiment pas dou sa peu venir....HELP!!
je charche trouver la solution ou un moyen pus propre en programation pour que le programme s'execute normalement...
 
Merci d'avance  
 
A plus
 
 

Code :
  1. import flash.utils.Timer;
  2. import flash.display.MovieClip;
  3. import flash.display.Loader;
  4. //Déclaration de toutes les variables
  5. var image_mod:URLRequest;
  6. var img_nom_mod:String;
  7. var img_url_mod:String;
  8. var u:int;
  9. var position_img_mod:Number = - 567
  10. var charge_mod_perso:MovieClip = new load_MC()
  11. var k:int
  12. var conteneurImage_perso:Loader = new Loader();
  13. var pct_img_load:Number
  14. var module_app:Timer = new Timer(600,1)
  15. //initialisation des elements de la bibliotheques importé
  16. charge_mod_perso.x = 673;
  17. charge_mod_perso.y = 270;
  18. addChild(charge_mod_perso);
  19. charge_mod_perso.visible = false;
  20. //initialisation des elements de la scene
  21. MC_ecran.MC_mod.MOD_objet.loader_image_module.barre.scaleX = 0
  22. MC_ecran.MC_mod.MOD_objet.loader_image_module.img_charg.image.text =  "0"+ " / 100"
  23. MC_ecran.MC_mod.MOD_objet.contenu_img.mask = MC_ecran.MC_mod.MOD_objet.mask_module_obj;
  24. function clic_lien (evt:MouseEvent):void
  25. {
  26. //clic sur les boutons
  27. TweenMax.to(MC_ecran.MC_mod.MOD_objet.contenu_img, 0.2, {alpha: 0});
  28. num_clic_liens = evt.target.parent.name;
  29. init_mod_obj ();
  30. module_app.addEventListener(TimerEvent.TIMER, module_obj)
  31. module_app.start ();
  32. }
  33. function init_mod_obj ():void
  34. {
  35. //initialisation des information du contenu de l'XML
  36. img_nom_mod = XmlListliens.(@id== num_clic_liens - 1).fichier;
  37. img_url_mod = XmlListliens.(@id== num_clic_liens - 1).dossier;
  38. }
  39. function module_obj (Tevt:TimerEvent):void
  40. {
  41. dechargement_images ();
  42. // recupération des fichier a charger avec leur nom respectifs
  43. for ( k = 0 ; k <= 100 ; k++ )
  44. {
  45.  if (k < 10)
  46.  {
  47.   image_mod = new URLRequest(img_url_mod + img_nom_mod + "000" + k + ".jpg" );
  48.   position_images();
  49.  }
  50.  if (  k >9 && k < 100)
  51.  {
  52.   image_mod = new URLRequest(img_url_mod + img_nom_mod + "00" + k + ".jpg" );
  53.   position_images();
  54.  }
  55.  if (  k > 99)
  56.  {
  57.   image_mod = new URLRequest(img_url_mod + img_nom_mod + "0" + k + ".jpg" );
  58.   position_images();
  59.  }
  60. }
  61. // ecouteurs d'evenement du chargement de la globalité de tous les 100 loader (conteneurImage_perso)
  62. // impossible de les positionner ailleurs
  63. conteneurImage_perso.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, charge_img_obj);
  64. conteneurImage_perso.contentLoaderInfo.addEventListener(Event.COMPLETE, complet_img_obj);
  65. module_app.removeEventListener(TimerEvent.TIMER, module_obj)
  66. }
  67. function position_images ():void
  68. {
  69. // place les images les une apres les autres dans le clip contenu_img(position_img_mod * k)
  70. // voir la boucle ci dessus
  71. conteneurImage_perso = new Loader();
  72. conteneurImage_perso.x = position_img_mod * k + 3.5;
  73. conteneurImage_perso.load (image_mod);
  74. MC_ecran.MC_mod.MOD_objet.contenu_img.addChild(conteneurImage_perso);
  75. }
  76. function dechargement_images ():void
  77. {
  78. //decharge les images une par une
  79. for ( var l:int = k ; l > 0 ; l-- )
  80. {
  81.  MC_ecran.MC_mod.MOD_objet.contenu_img.removeChildAt(conteneurImage_perso);
  82. }
  83. }
  84. function charge_img_obj (pEvt:ProgressEvent):void
  85. {
  86. //charge le contenu
  87. pct_img_load = pEvt.bytesLoaded / pEvt.bytesTotal
  88. MC_ecran.MC_mod.MOD_objet.loader_image_module.barre.scaleX = pct_img_load
  89. MC_ecran.MC_mod.MOD_objet.loader_image_module.img_charg.image.text =  int(pct_img_load * 100) + " / 100"
  90. charge_mod_perso.visible = true;
  91. }
  92. function complet_img_obj (Evt:Event):void
  93. {
  94. // animation pour l'affichage
  95. charge_mod_perso.visible = false;
  96. TweenMax.to(MC_ecran.MC_mod.MOD_objet.contenu_img, 1, {alpha: 1});
  97. MC_ecran.MC_mod.MOD_objet.mask_module_obj.gotoAndPlay(1);
  98. conteneurImage_perso.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, charge_img_obj);
  99. conteneurImage_perso.contentLoaderInfo.removeEventListener(Event.COMPLETE, complet_img_obj);
  100. }

mood
Publicité
Posté le 05-09-2010 à 18:59:34  profilanswer
 

n°2021387
guyton
Posté le 06-09-2010 à 11:51:44  profilanswer
 

personne peut me repondre?

n°2021491
lefermier
Posté le 06-09-2010 à 23:37:26  profilanswer
 

salut,
 
Je sais pas trop  :??:  :
Y a pas une propriété dans le loader pour dire que c'est fini ( event ou autre) ?


Message édité par lefermier le 06-09-2010 à 23:37:48
n°2021500
guyton
Posté le 07-09-2010 à 06:48:22  profilanswer
 

J'ai trouver la solution:
les navigateur internet ne chargent pas les images de la meme maniere que le simulateur de bande passante de flash. le simulateur place les 100 loaders de la boucle puis charge 100 images simultanément.Le navigateur place les 100 loaders et les charges les uns apres les autres.
En gros j'ai utilisé un ecouteur d'evenement à chaque boucle sur ce loader avec la fonction COMPLETE et j'ai incrémenté une valeur v++ une fois le loader chargé.Une fois a 100 le compteur va a 0.
Ca fonctionne tres bien sur le navigateur.
 

Code :
  1. import flash.utils.Timer;
  2. import flash.display.MovieClip;
  3. import flash.display.Loader;
  4. var charge_mod_perso:MovieClip = new load_MC();
  5. var conteneurImage_perso:Loader
  6. var image_mod:URLRequest;
  7. var img_nom_mod:String;
  8. var img_url_mod:String;
  9. var position_img_mod:Number = - 567;
  10. var pct_img_load:Number
  11. var k:int
  12. var v:int = 0
  13. var module_app:Timer = new Timer(600,1)
  14. charge_mod_perso.x = 673;
  15. charge_mod_perso.y = 220;
  16. addChild(charge_mod_perso);
  17. charge_mod_perso.visible = false;
  18. charge_mod_perso.alpha = 0;
  19. MC_ecran.MC_mod.MOD_objet.loader_image_module.barre.scaleX = 0
  20. MC_ecran.MC_mod.MOD_objet.loader_image_module.img_charg.image.text =  "0"+ " / 100"
  21. MC_ecran.MC_mod.MOD_objet.contenu_img.mask = MC_ecran.MC_mod.MOD_objet.mask_module_obj;
  22. function clic_lien (evt:MouseEvent):void
  23. {
  24. num_clic_liens = evt.target.parent.name;
  25. init_mod_obj ();
  26. TweenMax.to(MC_ecran.MC_mod.MOD_objet.contenu_img, 0.2, {alpha: 0});
  27. module_app.addEventListener(TimerEvent.TIMER, module_obj)
  28. module_app.start ();
  29. }
  30. function init_mod_obj ():void
  31. {
  32. img_nom_mod = XmlListliens.(@id== num_clic_liens - 1).fichier;
  33. img_url_mod = XmlListliens.(@id== num_clic_liens - 1).dossier;
  34. }
  35. function module_obj (Tevt:TimerEvent):void
  36. {
  37. v = 0;
  38. dechargement_images ();
  39. for ( k = 0 ; k <= 100; k++ )
  40. {
  41.  if(k < 10)
  42.  {
  43.   image_mod = new URLRequest(img_url_mod + img_nom_mod + "000" + k + ".jpg" );
  44.  }else if(k >= 10 && k < 100)
  45.  {
  46.   image_mod = new URLRequest(img_url_mod + img_nom_mod + "00" + k + ".jpg" );
  47.  }else if(k >= 100)
  48.  {
  49.   image_mod = new URLRequest(img_url_mod + img_nom_mod + "0" + k + ".jpg" );
  50.  }
  51.  position_images();
  52.  conteneurImage_perso.contentLoaderInfo.addEventListener(Event.COMPLETE, complet_img_obj);
  53. }
  54. function dechargement_images ():void
  55. {
  56.  for ( var l:int = k ; l > 0 ; l-- )
  57.  {
  58.   MC_ecran.MC_mod.MOD_objet.contenu_img.removeChildAt(conteneurImage_perso);
  59.  }
  60. }
  61. function position_images ():void
  62. {
  63.  conteneurImage_perso = new Loader();
  64.  conteneurImage_perso.load (image_mod);
  65.  conteneurImage_perso.x = position_img_mod * k + 3.5;
  66.  MC_ecran.MC_mod.MOD_objet.contenu_img.addChild(conteneurImage_perso);
  67. }
  68. function complet_img_obj (Evt:Event):void
  69. {
  70.  TweenMax.to(MC_ecran.MC_mod.MOD_objet.loader_image_module.barre, 0.4, {scaleX: v / 100});
  71.  MC_ecran.MC_mod.MOD_objet.loader_image_module.img_charg.image.text =  String(v) + " / 100"
  72.  if(v == 100)
  73.  {
  74.   charge_mod_perso.visible = false;
  75.   charge_mod_perso.alpha = 0;
  76.   TweenMax.to(MC_ecran.MC_mod.MOD_objet.contenu_img, 1, {alpha: 1});
  77.   MC_ecran.MC_mod.MOD_objet.mask_module_obj.gotoAndPlay(1);
  78.   conteneurImage_perso.contentLoaderInfo.removeEventListener(Event.COMPLETE, complet_img_obj)
  79.  }else{
  80.   charge_mod_perso.visible = true;
  81.   TweenMax.to(charge_mod_perso, 0.4, {alpha: 1});
  82.   MC_ecran.MC_mod.MOD_objet.contenu_img.alpha = 0;
  83.  }
  84.  v++
  85. }
  86. }


Merci pour votre aide quand meme.
 
PS: pour repondre a toi "lefermier" la propriété qui permet de savoir si un loader est chargé est COMPLETE.


Message édité par guyton le 07-09-2010 à 06:50:56
n°2021506
lefermier
Posté le 07-09-2010 à 08:34:08  profilanswer
 

cool ça c'est bon à savoir ;)

n°2021573
guyton
Posté le 07-09-2010 à 12:27:21  profilanswer
 

De rien ;)
 
Je prefere l'expliquer au cas ou il y ai une autre personne dans cette situation


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

  AS3 = probleme indicateur chargement d'images multiple

 

Sujets relatifs
passage à l'AS3 : un peu perdu avec les changementsprobleme avec easy forum ! 2.5
Demande de modification d'imagesproblème avec la fonction vlookup
Probleme avec " Adobe Flash Player "Problème lecture codes barre 2/5 entrelacés
Chargement des scripts avec Jquery 1.4.2traitement d'images / computer vision ?
problème réalisation tableau périodique tkinterremonter (superposer ?) des images
Plus de sujets relatifs à : AS3 = probleme indicateur chargement d'images multiple


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