Gérer la progression et la fin du chargement d'une image ou d'un swf en ActionScript 3 (AS3)
Le chargement est explique dans le billet : Le chargement d'images ou de swf
La classe LoaderInfo fournit des informations sur les fichiers swf chargés et sur les images chargées. Les informations fournies inclues une progression de chargement, les url du chargeur et du contenu chargé, le nombre total de bits pour le média, et la largeur/hauteur du média.
On accède aux objets LoaderInfo grâce à la propriété contentLoaderInfo de l'objet Loader.
Les événements progress et complete sont des événements de la classe LoaderInfo et non de la classe Loader. Il faut donc ajouter la méthode addEventListener() à Loader.contentLoaderInfo et non à Loader directement.
L'événement progress est évoqué régulièrement durant le chargement de l'image. L'événement complete est évoqué lorsque le chargement a réussi.
-
// création du conteneur de l'image
-
var conteneurImage:Loader = new Loader();
-
// url de l'image à charger
-
var image:URLRequest = new URLRequest("images/madagascar.jpg");
-
// Le chargement est terminé
-
function onComplete(evt:Event):void
-
{
-
// affichage du conteneur
-
this.addChild(conteneurImage);
-
}
-
// Progression du chargement
-
function onProgress(evt:ProgressEvent):void
-
{
-
var p:Number=(evt.bytesLoaded*100)/evt.bytesTotal;
-
trace(p);
-
}
-
// Evénement progress
-
conteneurImage.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
-
// Evénement complete
-
conteneurImage.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
-
// chargement de l'image dans le conteneur
-
conteneurImage.load(image);
;-)
Je suis Antony Chauviré, développeur sur la Flash Platform.
C'est bizarre, il n'aime pas cette url ?
http://www.dandeville-erick.com/...
En fait, pratiquement toute les url d'image que j'ai testé, il considère qu'elle ne sont pas bonnes :s
bonjour,
ça fonctionne correctement avec l'url indiqué :
var monLoader:Loader = new Loader();
var myRequest:URLRequest = new URLRequest("http://www.dandeville-erick.com/...
monLoader.load (myRequest);
stage.addChild ( monLoader ) ;
;)
Je commence de parcourir cette excellente mise en bouche de l'as3.
en testant ce code je réalise que la trace de la progression du chargement n'apparait que d'un coup, en meme temps que la photo; y aurait-il une subtilité que je n'aurais pas compris?
Bonjour,
très bon article
Bien à vous
Jeremy Gautier