Array et xml au service du chargement aleatoire d'une image de fond

Soyez le premier à donner votre avis sur cette source.

Vue 11 097 fois - Téléchargée 2 343 fois

Description

Un code simple et expliqué de la fonction ARRAY() avec XML. Le code n'est pas trop optimisé mais cela fonctionne bien. Pour ceux qui souhaitent avoir des infos sur les PRELOADERS, la source contient tout ce qu'il faut !
Pour ceux qui n'aiment pas les ZIP, voici l'essentiel du code :

Source / Exemple :


//ON CREE UN ARRAY
all_images = new Array();

//ON DECLARE LA VARIABLE AJOUTE QUI VA NOUS SERVIR A INSERER UNE IMAGE DANS L'ARRAY
var _ajoute;

//PROCEDURE DE CHARGEMENT DU FICHIER XML
myXML=new XML();
myXML.ignoreWhite=true;

//LES IMAGES SONT STOCKEES DANS LOAD.XML
myXML.load("load.xml");

//SI CHARGEMENT OK ALORS
myXML.onLoad = function (ok){
	if (ok){
		//ON INITIALISE LE COMPTEUR
		i=0;
		//ON DESCEND A LA SECTION MAIN DU FICHER XML
		x=myXML.firstChild;
		//TANT QU'IL EXISTE UN NOEUD FOND
		while(x.childNodes[i]!=undefined){
			//LA VARIABLE _AJOUTE PREND LA VALEUR DU FICHIER DU NOEUD
			_ajoute = x.childNodes[i].childNodes[0].attributes.url;
			//ON AJOUTE L'IMAGE A L'ARRAY
			all_images.push(_ajoute)
			//ON INCREMENTE I+1 ou I++
			i++;
		}
	}

//ON CREE ICI UN MOVIECLIP VIRTUEL QUI VA PERMETTRE DE CHARGER L'IMAGE
createEmptyMovieClip("fond", 1);

//ON CHARGE L'IMAGE AVEC UNE ROUTINE PERMETTANT DE CHOISIR AU HAZARD PARMI TOUS LES FICHIERS DU XML
fond.loadMovie(all_images[random(all_images.length-1)]);

Codes Sources

A voir également

Ajouter un commentaire Commentaires
jornov7 Messages postés 4 Date d'inscription dimanche 31 octobre 2010 Statut Membre Dernière intervention 16 avril 2011
3 mars 2011 à 15:22
Pourquoi çà ne marche pas avec des images png?
cyberbelette Messages postés 12 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 novembre 2016
27 févr. 2008 à 11:28
Bonjour,
je débute en action script et j'essaye d'adapter ce script à une cible "toto" déjà présente sur la scène. ça a l'air de fonctionner si ce n'est que la fenêtre de sortie n'affiche pas toujours le bon nom de fichier image et que la dernière image nommée dans le fichier XML n'est jamais atteinte.
Si quelqu'un pouvait me dire ce qui cloche, voilà ce que j'ai gardé du code cité + haut (désolé, je n'ai trouvé nulle part quelles balises mettre pour citer du code proprement):

//ON CREE UN ARRAY VIDE QUE L'ON REMPLIRA PLUS TARD
all_images = new Array();
//ON DECLARE LA VARIABLE AJOUTE QUI VA NOUS SERVIR A INSERER UNE IMAGE DANS L'ARRAY
var _ajoute;
//PROCEDURE DE CHARGEMENT DU FICHIER XML
myXML=new XML();
myXML.ignoreWhite=true;
//LES IMAGES SONT STOCKEES DANS LOAD.XML
myXML.load("load.xml");
//SI CHARGEMENT OK ALORS
myXML.onLoad = function (ok){
if (ok){
//ON INITIALISE LE COMPTEUR
i=0;
//ON DESCEND A LA SECTION MAIN DU FICHER XML
x=myXML.firstChild;
//TANT QU'IL EXISTE UN NOEUD FOND
while(x.childNodes[i]!=undefined){
//LA VARIABLE _AJOUTE PREND LA VALEUR DU FICHIER DU NOEUD
_ajoute = x.childNodes[i].childNodes[0].attributes.url;
//ON AJOUTE L'IMAGE A L'ARRAY
all_images.push(_ajoute)
//ON INCREMENTE I+1 ou I++
i++;
}
}
//ON CHARGE L'IMAGE AVEC UNE ROUTINE PERMETTANT DE CHOISIR AU HAZARD PARMI TOUS LES FICHIERS DU XML
toto.loadMovie(all_images[random(all_images.length-1)]);
//TRACE PERMET DE TESTER SI TOUT EST OK A CE STADE
trace(all_images[random(all_images.length-1)]);
}
gfpl Messages postés 172 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 9 avril 2011
13 mars 2007 à 16:28
tres bon script dommage que ne parvient pas a lui faire charger des png
cs_Youniz Messages postés 8 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 2 juillet 2008
7 mars 2007 à 14:02
Très bien le script... vraiment... je cherchais ca depuis bien longtemps.

Par contre j'ai un petit problème. En effet, le but du jeu est de créer un MovieClip qui contiendra le fond [createEmptyMovieClip("fond", 1)]... Le problème et que si je veux créer d'autre MovieClip sur ma scène pour me servir uniquement de l'image comme fond et bien ce n'est pas possible... mon fond se retrouve toujours au-dessus de tout mes autres MovieClips et images... j'imagine qu'une simple ligne de code suffirait à régler le problème... mais je n'y arrive pas... peux-tu me donner l'astuce...

Merci ;)
Brendarth Messages postés 15 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 25 novembre 2005
2 déc. 2005 à 12:51
Cette version semble bien plus stable que dans ta source sur les barres de chargement.
Ca marche impec et ça sera sans doute utile à pas mal de monde.

Un conseil :
Essaye d'améliorer ton effet de "rebond" pour ne plus procéder en image par image. ;)

9/10

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.