Pb de progressbar

lespaulz Messages postés 16 Date d'inscription vendredi 28 mars 2003 Statut Membre Dernière intervention 26 mars 2007 - 26 mars 2007 à 22:30
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 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();

container._lockroot = true;   

Ecouteur = new Object();                           

chargeur.addListener(Ecouteur);   

chargeur.loadClip("http://www.site.com/photos/1134571328.jpg", container); //

if (i==1){

    container._x = XStart;

}

else

{

    container._x = 80* (i-1) + XSpace;

}

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 .

Qu'elle la meilleur solution.

Merci.

Ni dieu Ni Maitre

1 réponse

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
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);
}



et là ca roule ;)
j'te souhaite bon courage
++



Flash sans Limites


_Benjy
  chez kOlapsis
0
Rejoignez-nous