Donnez votre avis

Créer rapidement et facilement un petit diaporama d'images externes (avec barre de chargement)

Posez votre question
  • [# -;]


Bonjour voici les étapes pour créer un diaporama d'images externes assez simplement :


Mettre dans un répertoire disons pour l'exemple nommé "images", avec toutes les images nommées img0.jpg, img1.jpg...imgN.jpg
Dans Flash,
A la racine (sur _root donc pour l'exemple),
Créer un clip vide, avec comme nom d'occurrence : "Image", par exemple, (renommé au passage le calque en "Image" ca change rien et ne sert a rien dans le code, mais c'est plus lisible :) pour s'y repérer) .
Sur _root (toujours) créezun nouveau calque, et un nouveau clip en forme de barre horizontale (labarre de chargement), nommez l'occrruence du clip "BarreChargement".
A nouveau, un nouveau calque et nommez le AS (on va y mettre l'action script) :


Premièrement on ajoute le code suivant pour commencer par cacher la barre de chargement.

BarreChargement._visible = false;


Puis,on va faire 2 variables, une pour l'image en cours, et un eautre pourle nombre d'images total contenu dans le répertoire ...

imageIndex= -1;
maxImages= 10; // pour l'exemple, mais sinon mettre le nombre d'images dans le répertoire

Ensuite, 2 petites fonctions pour 'zapper' les images :

function imageNext(){
==_visible = true;==
onEnterFrame= function(){ //l'enterFrame un fonction executé tout letemps
var pc=Image.getBytesLoaded()*100/_root.getBytesTotal(); //calculedu % de l'image qui est chargé
BarreChargement._xscale=pc; // on change la taille de la barre de chargement
if (pc >= 100){ // et si tout estchargé
BarreChargement._visible =false; // on recache la barre dechargement
delete onEnterFrame; // onsuprimel'enterFrame; // etonsupprime la fonction exécuté en permanace, histoire de pas surgargerleprocesseur pour rien ...
}
}
imageIndex++;
if (imageIndex > maxImages){
imageIndex = 0;
}
Image.loadMovie("images/img"+imageIndex+".jpg");
}

function imagePrev(){
onEnterFrame = function(){
var pc = Image.getBytesLoaded()*100/_root.getBytesTotal();
if (pc == 100){
delete onEnterFrame;
}
}

-;


if (imageIndex <= -1){
imageIndex = maxImages;
}
Image.loadMovie("images/img"+imageIndex+".jpg");
}

sivous souhaitez que la première image soit chargé automatiquement onappel tout de suite imageNext a la suite de la définition des 2fonctions précédentes :

imageNext();

Ilne reste plus qu'a faire 2 boutons, un pour avancer et un pour reculer(de préférence sur un nouveau calque aussi, nommé par exemple boutons)
avec respectivement :

on(release){
imageNext();
}

et

on(release){
imagePrev();
}

Et voilà c'est fini.

Flash sans Limites
_Benjy

Adresse d'origine
Ajouter un commentaire

Commentaires

Commenter la réponse de Zlub