2010-03-11 5 views
1

Je tente de charger plusieurs images dans AS3 et j'explore différentes options sur la façon dont cela peut être fait.AS3 Loader() - chargement de plusieurs images avec un chargeur

Je voudrais avoir seulement utiliser une instance de charge() et gérer les différentes missions d'image dans le gestionnaire onComplete ...

ici est ma première tentative:

var buttonLdr:Loader = new Loader(); 
buttonLdr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError); 
buttonLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete); 

whichButton = 0; 
buttonLdr.load(new URLRequest("images/test.png")); 

whichButton = 1; 
buttonLdr.load(new URLRequest("images/testDown.png")); 

whichButton = 2; 
buttonLdr.load(new URLRequest("images/testHover.png")); 

private function onLoadComplete(e:Event):void 
{ 
    switch(whichButton) 
    { 
     case 0: 
      buttonBgUp = e.target.loader.content; 
      break; 
     case 1: 
      buttonBgDown = e.target.loader.content; 
      break; 
     case 2: 
      buttonBgHover = e.target.loader.content; 
      break; 
    } 
    create(); 
} 

Un assez simple approche ... bien qu'il n'appelle la fonction que lors du dernier appel, en réglant le bouton buttonBgHover, mais rien d'autre.

Tout conseil à ce qui pourrait se passer ici serait grandement apprécié.

-Merci

Répondre

1

Vous devez appeler la prochaine charge que lorsque la charge précédente soit terminée.

whichButton = 0; 
buttonLdr.load(new URLRequest("images/test.png")); 
private function onLoadComplete(e:Event):void 
{ 
switch(whichButton) 
{ 
    case 0: 
     buttonBgUp = e.target.loader.content; 
     whichButton = 1; 
     buttonLdr.load(new URLRequest("images/testDown.png")); 
     break; 
    case 1: 
     buttonBgDown = e.target.loader.content; 
     whichButton = 2; 
     buttonLdr.load(new URLRequest("images/testHover.png")); 
     break; 
    case 2: 
     buttonBgHover = e.target.loader.content;    
     break; 
} 
create(); 

}

+1

Eh bien, qui va faire le travail, mais ce genre de logique en cascade est loin d'être idéale en termes de maintien du code, ou pour servir de base à un gestionnaire de charge qui peut se développer et gagner des fonctionnalités. Parce que ceci est un site d'apprentissage, je proposerais d'abandonner "quelBouton" en faveur de pousser vos URL de fichier dans une file d'attente (tableau) et en utilisant Array.shift() jusqu'à ce que la file d'attente soit vide. De cette façon, vous pouvez prendre en charge l'ajout de fichiers pendant qu'une charge est en cours, en ajoutant plus de chargeurs round-robin, etc. –

Questions connexes