Pk mon preloader ne fonctionne pas ??

Signaler
Messages postés
65
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
17 mars 2011
-
Messages postés
65
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
17 mars 2011
-
Bonjour,

J'ai voulu rajouter un preloader au chargement des images de ma galerie photo, j'ai donc placé ce code

eloader.onLoadProgress = function(photoHolder, bytesLoaded:Number, bytesTotal:Number):Void  
            {
            this.pourcent = Math.round((bytesLoaded/bytesTotal)*100);
            _root.imgloadBar._width = this.pourcent;
            trace(photoHolder + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
            }



mais rien ne se passe au niveau du chargement de l'image (les images se chargent correctement mais la barre de preloader ne fonctionne pas) ????

Voici le script complet, peut-être que j'ai placé ce code au mauvais endroit ou bien que j'ai mal ciblé le movieclip ????
J'ai pas oublier de nommer  l'occurence du symbole imgloadBar avec le même nom

Merci d'avance pour votre aide...

var PhotoXML:XML = new XML();
//création d'un nouvel objet XML
var index:Number;
var TotalPhotos:Number;
var PhotoCaption:String;
var RootNode:XMLNode;
var nombre:Number = 0;
loadPhotoXML("print_portfolio_thumb.xml");
//pr que la fonction ne renvoye rien
function loadPhotoXML(filename:String):Void {
    PhotoXML.ignoreWhite = true;
    //sinon tous les return sont pris en considération
    PhotoXML.load(filename);
    //chargement du XML
    PhotoXML.onLoad = function(success:Boolean):Void  {
        if (success) {
            index = 0;
            //initialisation du nombre de photos
            RootNode = this.firstChild;
            //pour faciliter la navigation dans les noeuds XML
            TotalPhotos = RootNode.firstChild.childNodes.length;
            //nbre de balises  enfant d'  dans mon XML
            showPhoto(0, "2007");
            // fonction à créer pr faire apparaître la 1ère photo
        } else {
            trace("Problème de chargement du XML !");
        }
    };
}

Reception = new LocalConnection();
Reception.connect("connexion10");
Reception.mamethode = function(Myphoto,Myyear) 
{
    // mavariable s'est donc photoThumb dans mon cas
    pMyphoto = Myphoto;
    pYear = Myyear;
    
    trace("Je suis le receiver et pMyphoto vaut : "+Myphoto+" et year vaut : "+Myyear);
    showPhoto(Myphoto,Myyear);
    
};

function showPhoto(index, year:String):Void 
{
    _root.theyear = year;
    var MovieDepthCounter:Number = 10;
    var photoHolder:MovieClip;
    var photoThumb:String;
    var photo:String;
    //nombre += index;
    trace("nombre vaut "+nombre);
    trace("index vaut "+index);
    trace("Le total de photos de "+year+" est de : "+TotalPhotos);
    if (nombre>=(TotalPhotos-1)) {
        Next_btn.enabled = false;
    } else {
        Next_btn.enabled = true;
    }
    if (nombre == 0) {
        Previous_btn.enabled = false;
    } else {
        Previous_btn.enabled = true;
    }
    for (var i:Number = 0; i<RootNode.childNodes.length; i++) {
        if (RootNode.childNodes[i].attributes.year == year) {
            var CategoryXML:XMLNode = RootNode.childNodes[i];
            TotalPhotos = RootNode.childNodes[i].childNodes.length;
            trace(year+" has "+TotalPhotos+" photos");
            photo = RootNode.childNodes[i].childNodes[index].childNodes[0].firstChild.nodeValue;
            photoThumb = RootNode.childNodes[i].childNodes[index].childNodes[1].firstChild.nodeValue;
            PhotoCaption = RootNode.childNodes[i].childNodes[index].childNodes[2].firstChild.nodeValue;
            //photoThumb = "http://www.webdesign-4u.be/web-4u/images/portfolio/pictures/2003/botybenelux.jpg";
            trace(photo);
            photoHolder = this.createEmptyMovieClip("photoHolder"+index, MovieDepthCounter);
            trace("photoHolder vaut "+photoHolder);
            var photoHolderLoader:MovieClipLoader = new MovieClipLoader();
            // création de l'écouteur
            var eLoader:Object = new Object();
            
            // onLoadProgress est lévènement qui boucle pendant que l'image est chargée
            eloader.onLoadProgress = function(photoHolder, bytesLoaded:Number, bytesTotal:Number):Void  
            {
            this.pourcent = Math.round((bytesLoaded/bytesTotal)*100);
            _root.imgloadBar._width = this.pourcent;
            trace(photoHolder + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
            }
            
            eLoader.onLoadInit = function(photoHolder) {
                photoHolder._x = (Stage.width-photoHolder._width)/2;
                photoHolder._y = ((Stage.height-photoHolder._height)/2)+15;
                photoHolder._alpha = 0;
                _root.imgloadBar._visible  = false;
                trace("image chargée a 100%"+photoHolder+".onLoadInit");
                photoHolder.onLoad = doFade(photoHolder, "in", 5);
                
                    var myDropFilter = new flash.filters.DropShadowFilter();
                    var myFilters:Array = photoHolder.filters;
                    myFilters.push(myDropFilter);
                    photoHolder.filters = myFilters;
                    
                    var myList:Array = photoHolder.filters;
                    myList[0].quality = 15;
                    photoHolder.filters = myList;

            };
            photoHolderLoader.addListener(eLoader);
            photoHolderLoader.loadClip(photo, photoHolder);
            caption_txt.text = PhotoCaption;
            year_txt.text = year;
            MovieDepthCounter++;
        }
    }
    //fin du for
}
//fin de la fonction showThumbails
function doFade(mcName, alphaDirection, changeRate) {
    mcName.onEnterFrame = function() {
        if (alphaDirection == "out") {
            if (this._alpha<=0) {
                this._alpha = 0;
                delete this.onEnterFrame;
            } else {
                this._alpha -= changeRate;
            }
        } else if (alphaDirection == "in") {
            if (this._alpha>=100) {
                this._alpha = 100;
                delete this.onEnterFrame;
            } else {
                this._alpha += changeRate;
            }
        }
    };
}

3 réponses

Messages postés
65
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
17 mars 2011

Désolé pour cette question stupide  :lol:  en fait le preloader fonctionnait parfaitement, c'est parce que mes photos étaient tellement légères qu'on avait même pas le temps de voir le preloader, j'ai testé avec une image de 1,5Mo et là on le voit bien fonctionner  :oops:
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Aide utile :

Fais 2 fois Ctrl + Entrée. Une fois suffit a exporter l'anim mais une 2e fois de suite permet de la voir comme si tu possedai une connexion 56k donc bien pour voir le preloader !

:-)
Messages postés
65
Date d'inscription
jeudi 17 mars 2011
Statut
Membre
Dernière intervention
17 mars 2011

Merci beaucoup je ne connaissais pas cette fonction !