Français   English


the ActionScript SlideShow

// CREATOR          Morel Sophie
// VERSION          1.0
// CREATED          Aout 2005
// SUMMARY          Créer un slide show




mcPhoto = "X";

//size of the file
FilmHeight = 500;
FilmWidth   = 500;
boutonHeight = 50;

tailleImage = 450; //les images sont loader dans un carré de coté tailleImage
bord = 10; //taille du bord blanc autour de l'image
ImageIndex =0; // pour parcourir le tableau d'image
pathToPics ="images/";

fadeSpeed = 3; /* vitesse pour les méthodes fade in et fade out */
DureeAffichage = 2000; /* la photo va apparaitre pendant 2 secondes */


//////////////////////////////////////////////////////////////////////
// acces aux images

//////////////////////////////////////////////////////////////////////
//Recherche des données sur les images depuis le fichier gallery.xml
// fichier créer grace au script php BuildXml.php




_root.document = new XML();
_root.document.ignoreWhite=true;
_root.ImageArray = new Array();

//Extraire les données du fichier XML et lancer le slideshow depuis la
//fonction extractData
_root.document.onLoad=extractData;
_root.document.load("gallery.xml");
       
function extractData(success){

    percent=(this.getBytesLoaded()/this.getBytesTotal())*100;
        if(!isNan(percent)){
          tfNewfield.text =percent+"% loaded";
        }else{
             tfNewfield.text ="0% loaded";
        }
       
    if(percent == 100){
        // charger le nom des images depuis le xml
        // dans le tableau _root.ImageArray
        numimages =this.firstChild.childNodes.length;
        for (i=0; i<numimages; i++) {
            noeud = this.firstChild.childNodes[i].attributes.nomImage;
            _root.ImageArray.push(noeud);
        }
        /// Lancer le slideShow
        SlideShow(pathToPics + _root.ImageArray[ImageIndex]);
    }
}


function SlideShow(image_path){
    ///////////////////////////////////////////////////////////////////
    // création de movieClip support de l'image à afficher
   
    /* Loader l'image à afficher */
    this.createEmptyMovieClip(mcPhoto,4);
    loadMovie(image_path,this[mcPhoto]);
   
    _root[mcPhoto]._alpha = 0;
   
    /////////////////////////////////////////////////////////////////////////////
    /////////////////////       this.onEnterFrame   
               
    this.onEnterFrame=function(){
       
        //trace the percentage of the movie that has loaded
        percent = (this[mcPhoto].getBytesLoaded() / this[mcPhoto].getBytesTotal())*100;
        if(!isNan(percent)){
        // tfNewfield.text =percent+ " % loaded";
        }else{
             //tfNewfield.text =" 0% loaded";
        }
       
        // si l'image est complétement loader, on peut la transformer
         if(percent == 100){
       
            /* definir une taille approprié pour l'affichage */
            /* l'image doit tenir dans un carré de coté tailleImage */
           
            if(this[mcPhoto]._width > this[mcPhoto]._height){
                this[mcPhoto]._height = (tailleImage * this[mcPhoto]._height) / this[mcPhoto]._width;
                this[mcPhoto]._width = tailleImage;
            }
            else{
                this[mcPhoto]._width = (tailleImage * this[mcPhoto]._width) / this[mcPhoto]._height;
                this[mcPhoto]._height = tailleImage;
            }
           
            /* centrer l'image en fonction de sa taille et sa hauteur et de la taille du Movie */
           
            this[mcPhoto]._x +=(FilmHeight - this[mcPhoto]._width)/2;
                this[mcPhoto]._y +=(FilmHeight - this[mcPhoto]._height)/2;
           
           
            //////////////////////////////////////////////////
            // ajouter un bord blanc autour de la photo
           
            this.createEmptyMovieClip("mcBord",2);
            with (this.mcBord){
                lineStyle(1,"0xAAAAAA", 100);
                                   beginFill (0xFFFFFF, 100);
                                   moveTo (-bord,-bord);
                                   lineTo (bord+this[mcPhoto]._width,-bord);
                                   lineTo (bord+this[mcPhoto]._width,this[mcPhoto]._height+bord);
                                   lineTo(-bord,this[mcPhoto]._height+bord);
                                   lineTo(-bord,-bord);
                                   endFill();
                _alpha = 0;
               
            }
           
            /* positionner le bord blanc pour encadrer l'image */
            this.mcBord._x=this[mcPhoto]._x;
            this.mcBord._y=this[mcPhoto]._y;
   
           
            /* fade in méthode pour afficher l'image */
            /* affichage pendant DureeAffichage puis fade out */
                            fadeIn(fadeSpeed);
       

            // affichage de l'image terminé        
                        delete this.onEnterFrame;
      }
    };

}
/////////////////////////////////////////////////////////////////////////////
/////////          Fonction fadeIn fadeOut et Affichage
function fadeIn(fadeSpeed) {

    _root[mcPhoto].onEnterFrame = function() {
        mcBord._alpha += fadeSpeed;
         this._alpha += fadeSpeed;
         if(this._alpha >= 100) {
            affImage = setInterval(Affichage, DureeAffichage,fadeSpeed);
                               delete this.onEnterFrame;
         }
    };
                                                      
}

function Affichage(DureeAffichage){
    fadeOut(fadeSpeed);
    clearInterval(affImage);
   
}


function fadeOut(fadeSpeed) {

    _root[mcPhoto].onEnterFrame = function() {
         if( _root[mcPhoto]._alpha > 0) {
            this._alpha -= fadeSpeed;
            mcBord._alpha -= fadeSpeed;
         }
        else{
            
            ImageIndex +=1;
            if (ImageIndex >= ImageArray.length)
                ImageIndex = 0;
           
            //relancer le slideshow pour la prochaine image
            SlideShow(pathToPics + ImageArray[ImageIndex]);
               
               
            delete this.onEnterFrame;
        }
    };                                                                                                                                                                                                                                                                                                           
                                                                 
}


// Fin du script