Pk mon preloader ne fonctionne pas ??

way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 31 mai 2007 à 12:44
way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 5 juin 2007 à 07:51
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;
            }
        }
    };
}

A voir également:

3 réponses

way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011
1 juin 2007 à 15:20
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:
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
4 juin 2007 à 23:29
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 !

:-)
0
way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011
5 juin 2007 à 07:51
Merci beaucoup je ne connaissais pas cette fonction !
0
Rejoignez-nous