lespaulz
Messages postés16Date d'inscriptionvendredi 28 mars 2003StatutMembreDernière intervention26 mars 2007
-
26 mars 2007 à 22:30
_benjy
Messages postés1575Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention21 février 2011
-
27 mars 2007 à 20:22
Bonjour,
Afin de progresser en AS.
Je suis en train d'essayer de mettre en place une galerie photo.
Ceci m'a permis de comprendre la manipulation des MovieClip ainsi que la tehnique des écouteurs.
La technique que j'ai gardé et que j'emploi est celle-ci.
Une boucle d'itération que me permet de créer des emptyMovieClip() dans lesquels je charge une photo.
Voici le code:
#include "resize.as" //fichier qui contient ma fonction de resize avec ratio
XStart = 10; //Position X de départ de la premiere image
XSpace = 10; //Espacement images
for (var i=1; i<5; i++){
var container:MovieClip = this.createEmptyMovieClip("container_"+i, this.getNextHighestDepth());
var chargeur:MovieClipLoader = new MovieClipLoader();
var Percent = (80/Math.max(container._height, container._width))*100;
Ecouteur.onLoadComplete = function (cible){
var loadProgress = chargeur.getProgress(cible);
}
Ecouteur.onLoadInit = function (cible){
Resize(cible._x,11,cible,80);
}
Ecouteur.onLoadError = function (cible, Erreur){
//trace("erreur :"+ Erreur);
}
}
Maintenant pour styliser le tout, j'aimerais rajouter une progressBar pour chaque MovieClip que le load.
Et m'a question est donc:
Comment faire ?
Dois-je dupliquer mon symbol "progressbar" dans ma bibliothèque.
Ou alors ma technique n'est pas bonne.
Poutant j'arrive a tracer la progression de télchargement de photo grace a mes écouteurs .
_benjy
Messages postés1575Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention21 février 20112 27 mars 2007 à 20:22
Salut
En effet t'es sur la bonne voie, est OUI il faut que tu duplique une progressbar, mais pas dans la bibliotheque, tu vas le faire par l'AS (comme quand tu créer des clip vide)
Avant tout, une p'tite erreur, il faut que tu crée 1 ecouteur pour chaque chargement (donc a créer dans la boucle)
Le plus simple pour commencer c'est de te faire une progressbar
Donc tu te créer un clip (une barre) et tu fais une liaison pour AS (click droit sur le clip dans la bibliotheque > liaison > cocher "exporter pour as" et mettre un nom de liaison, "
ProgressBar" pour l'exemple
)
Ensuite dans ton code quand tu créer un containeur, en mm temps tu attache a la scene ton clip "ProgressBar".
Le plus simple étant de voir j'ai fait un p'tit Fla pour tester, et voilà le code :
for (var i:Number = 3; i <= 4; i++){
var container:MovieClip = this.createEmptyMovieClip("container"+i,this.getNextHighestDepth());
var progress:MovieClip = this.attachMovie("ProgressBar","Progress"+i,this.getNextHighestDepth());
var y:Number = (i-3)*200; container._y progress._y y;
var listener:Object = new Object();
listener.progressLoader = progress;
listener.onLoadStart = function(target:MovieClip){
trace (target._name+" start loading");
this.progressLoader._visible = true;
this.progressLoader._xscale = 0;
}
listener.onLoadProgress = function(target:MovieClip,loaded:Number,total:Number){
var pc:Number = loaded*100/total;
trace (target._name+" "+Math.round(pc)+"% loaded");
this.progressLoader._xscale = pc;
}
listener.onLoadComplete = function(target:MovieClip){
trace (target._name+" is loaded");
this.progressLoader._visible = false;
}
listener.onLoadInit = function(target:MovieClip){
trace (target._name+" ready for use");
}
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(listener);
var src:String = "http://composants.kolapsis.net/images/ki"+i+".jpg?nocache="+random(99999);
loader.loadClip(src,container);
}