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