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

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  AS3 : charger plusieurs images à partir d'une boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

AS3 : charger plusieurs images à partir d'une boucle

n°1834938
freed102
Arayashiki
Posté le 07-01-2009 à 10:25:37  profilanswer
 

Bonjour à tous,
 
Cela fait un moment que je n'ai pas posté un message ici, pour commencer je vous souhaite une très bonne année 2009.
 
J'ai donc une question AS3, je maitrise pas encore mais ça commence à venir...
 
J'ai une série d'images (des pictos) dont les chemins proviennent d'un fichier XML.
 
Je lance une boucle pour tenter de les charger mais je n'ai toujours que la derniere image qui s'affiche... pouvez-vous m'aider à corriger mon erreur ?
 
une bout de code :
 

Code :
  1. var xml_pictos=markers[number-1][9];
  2.         var n=0;
  3.         if(MCTile.MCPictos.numChildren>0)
  4.           {
  5.            MCTile.MCPictos.removeChildAt(0);
  6.           }
  7.         for each(var ThePicto:XML in xml_pictos..picto){
  8.         var pic = new Loader();
  9.         pic.contentLoaderInfo.addEventListener(
  10.         Event.COMPLETE,
  11.          function(event:Event):void {
  12.           this['MCPicto'+n]=new MovieClip();
  13.           this['MCPicto'+n].addChild(pic);
  14.           var pos:int=n*25;
  15.           this['MCPicto'+n].x=pos;
  16.           trace("chargé : "+ThePicto+" position : "+pos+" num : "+MCTile.MCPictos.numChildren)
  17.           //pic.x=pos
  18.           MCTile.MCPictos.addChild(this['MCPicto'+n]);
  19.           n++;
  20.          });
  21.         pic.load(new URLRequest(path+ThePicto));
  22.         }


 
 
En fait j'ai l'impression qu'il y a à chaque instance de ma boucle un remplacement de l'instance précédente, car on aperçoit de façon très rapide les pictos s'afficher les uns après les autres mais s'effacent à chaque fois qu'un nouveau picto s'affiche, donc il ne reste que le dernier à l'écran.
 
Merci d'avance

mood
Publicité
Posté le 07-01-2009 à 10:25:37  profilanswer
 

n°1835119
freed102
Arayashiki
Posté le 07-01-2009 à 14:52:38  profilanswer
 

bon... finalement j'ai trouvé un truc qui semble marcher... mais ça me parait bizarre de ne pas pouvoir bouger mes objets une fois le chargement terminé (dans le Event.COMPLETE)
 
voici mon code :
 

Code :
  1. var xml_pictos=markers[number-1][9];
  2.         var i:int = MCTile.MCPictos.numChildren;
  3.         while( i>0)
  4.         {
  5.          MCTile.MCPictos.removeChildAt(i-1);
  6.          i = MCTile.MCPictos.numChildren;
  7.          trace(MCTile.MCPictos.numChildren);
  8.         }
  9.         var TabPictos:Array=new Array();
  10.         for each(var ThePicto:XML in xml_pictos..picto){
  11.         TabPictos.push(ThePicto);
  12.         }
  13.         for (var n:Number = 0; n < TabPictos.length; n++) {
  14.          try {
  15.          ThePicto=TabPictos[n];
  16.          TabLoaders[n] = new Loader();
  17.          TabLoaders[n].load(new URLRequest(path+ThePicto));
  18.          TabPictos[n]=new Sprite();
  19.          TabPictos[n].addChild(TabLoaders[n]);
  20.          TabPictos[n].x=n*25;
  21.          MCTile.MCPictos.addChild(TabPictos[n]);
  22.          }
  23.          catch(e:Error){
  24.            trace(e);
  25.          }
  26.          finally{
  27.          TabLoaders[n].contentLoaderInfo.addEventListener(
  28.          Event.COMPLETE,
  29.           function(evt:Event):void {
  30.           });
  31.          }
  32.         }

n°1835824
Zedlefou
In cabbage we trust !
Posté le 09-01-2009 à 04:52:00  profilanswer
 

# addEventListener(
#         Event.COMPLETE,
#          function(event:Event):void {
 
:ouch:
 
On peut pas faire plus illisible !
AS3 c'est des classes, des classes et encore des classes.
 
Quand tu as besoin d'une fonction tu crees une methode sur ton object.
Elle doit avoir un nom, une place, une raison d'etre, des parametres, etc ...
 
Bref, il te faut une classe qui gere tout tes pictos.
Dedans tu commences par charger ton XML que tu stocks dans une proprieté.
Quand c'est fini, tu lances ta methode qui va charger et afficher chaque picto en leurs attribuant les proprietes que tu veux.
 
Pour que ce soit encore plus carré tu peux meme mettre des ecouteurs pour chaque etape pour bien controler la progression.
Encore que AS3 implemente foule d'ecouteurs donc, normalement pas besoin.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1835849
freed102
Arayashiki
Posté le 09-01-2009 à 09:54:46  profilanswer
 

ouai j'admets ne pas avoir optimisé ça coté "object" mais à vrai dire, si j'avais pu me passer de faire ça en AS3, je l'aurai fait en AS2 ! mais en fait il s'agit d'une application utilisant l'API googleMap... qui est en AS3 !
 
Je maitrise pas la programmation objet, chaque fois que j'ai essayé, ça n'a pas été très concluant !

n°1835861
Zedlefou
In cabbage we trust !
Posté le 09-01-2009 à 10:37:16  profilanswer
 

Ben la, t'as pas vraiment le choix.
C'est dur de s'y mettre mais si tu lis de la doc ou l'aide, en une semaine c'est torché.

 

Moi, je peux pas trop t'aider sur un code qui n'a ni queue ni tete ... dsl :/


Message édité par Zedlefou le 09-01-2009 à 10:37:50

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1835862
freed102
Arayashiki
Posté le 09-01-2009 à 10:42:03  profilanswer
 

ben en fait la méthode citée sur mon deuxieme message fonctionne... ça devrait me suffir dans un premier temps ! c juste la partie "Event.COMPLETE" qui ne sert à rien dans cette solution, en gros je ne peux pas agir sur mes pictos apres le chargement, mais visiblement ça ne pose pas de probleme pour les deplacer avant puisque je les mets dans des movieclips (ce sont les movieclips que je deplace), en gros mon probleme était que je ne pouvais pas passer la valeur de "n" (incrementation) dans ma fonction "function(evt:Event):void { }", donc je n'arrivais pas à deplacer mes pictos, en gros j'ai toujours bcp de mal à passer des variables dans mes fonctions avec écouteurs.


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

  AS3 : charger plusieurs images à partir d'une boucle

 

Sujets relatifs
[C] boucle de lecture streaming audiolecture de contenu de plusieurs fichiers [résolu]
[CSS] : Plusieurs Div dans un Div conteneurCopier des cellules sous condition avec boucle
JMF - Plusieurs connexions -> Problemes de portsChanger plusieurs images simultanément dans un tableau
Mise à jour d'une feuille à partir d'une autre feuille en vbaAS2 temporiser l'incrémentation dans une boucle
Avoir une fct unique pour plusieurs events avec paramètres différents 
Plus de sujets relatifs à : AS3 : charger plusieurs images à partir d'une boucle


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