Affichage aléatoire d'image ( chaque image ne ressorte qu'après que toutes les a

jerrrrrry Messages postés 60 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 29 juillet 2009 - 26 déc. 2005 à 00:09
jerrrrrry Messages postés 60 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 29 juillet 2009 - 27 déc. 2005 à 13:45
il s'agit d'afficher des images de façon aléatoire, en boucle, de telle sorte que chaque image ne ressorte qu'après que toutes les autres
soient passées,

( ici le code ne sert qu'à genener un nom aléatoire d'image),

je n'arrive pas a traiter les images, je pense qu'il faut mettre le nom de l'image dans un tableau mais comment faire pour rejeter les doublons?
(tout en sachant que dès que la serie complète d'image est passée il faut les accepter de nouveau!)

// début code
choix = new Array("1.jpg", "2.jpg", "3.jpg");
nbre_anim=choix.length;


varaleatoire = Math.round(Math.random()*(nbre_anim - 1));


valeurchoix = choix[varaleatoire];
trace (valeurchoix);
A voir également:

2 réponses

cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
26 déc. 2005 à 07:19
Utilises le code de Ludkill que j'ai utilisé dans ma source "Chargement Dynamique Aléatoire d'images :

var NbrAffiche = 4; //Nbr de photos à afficher
var NbrPhoto = 10; //Nbr de photos ds le dossier
mon_array = new Array(); //Tableau gardant les photos en mémoire pour les vérifs

function chargeImage(index) {
var mc = _root.createEmptyMovieClip("dia"+index, index);
var valide = "";
while (valide == "") {
var n = 1;
valide = "ok";
var ordre = Math.ceil(Math.random()*NbrPhoto);
while (n != NbrAffiche+1) {
if (ordre == mon_array[n]) {
valide = "";
}
n++;
}
}
mon_array[index] = ordre;
var img = "images/"+ordre+".jpg";
mc.loadMovie(img);
mc._x = (index-1)*250;
mc._y = 10;
}
// Fin de la fonction, on va afficher les photos
n = 1;
while (n != NbrAffiche+1) {
chargeImage(n);
n++;
}
0
jerrrrrry Messages postés 60 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 29 juillet 2009
27 déc. 2005 à 13:45
suivant le script fourni et apres quelques modifs
j'obtient ceci mais j'affiche uniquement la derniere image de la liste(?)les autres images étant sous celle là comme on peut le constater avec le décalage (mc1._x = 25 + (count*25);)
j'ai essayer d'introduire une temporisation (il suiffit de décommenter les lignes indiquées mais alors plus rien ne marche ,
comment faire?
jeremie

// code souce

var NbrPhoto = 10; //Nbr de photos ds le dossier
mon_array = new Array(); //Tableau gardant les photos en mémoire pour les vérifs
var nbre_photo_valide = 0 ;


function remplir_tableau(){
var ordre = Math.ceil(Math.random()*NbrPhoto);
trace ('aa'+ordre);
mon_array[0]=-1;
mon_array[1] = ordre;
nbre_photo_valide = 1;

var valide = "not_ok";
while ((valide == "not_ok") && (nbre_photo_valide != NbrPhoto)) {
var n = 1;
valide = "ok";
var ordre = Math.ceil(Math.random()*NbrPhoto);
while (n <= nbre_photo_valide ) {
if (ordre == mon_array[n]) {
valide = "not_ok";
}
n++;
}
if (valide == "ok"){
trace ('aa'+ordre);
nbre_photo_valide = nbre_photo_valide + 1;
mon_array[nbre_photo_valide] = ordre;
valide = "not_ok";
}
}
}



function chargeImage(index) {
trace ( 'charge'+index);



ordre = mon_array[index];
trace (ordre);



mc1.loadMovie("images/"+ordre+".jpg");

}
// Fin de la fonction, on va afficher les photos
var count = 1;
remplir_tableau();
trace (mon_array);
var mc = _root.createEmptyMovieClip("dia", 0);
for(count = 1 ; count <= NbrPhoto; count++){
var mc1 = mc.createEmptyMovieClip("photo"+count, count);
mc1._x = 25 + (count*25);

// essai de temporisation
//photoInterval = setInterval(updateStockPrices, "", 1000);



//updateStockPrices = function() {
// Update code here

chargeImage(count);
//}






}
0
Rejoignez-nous