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

Soyez le premier à donner votre avis sur cette source.

Vue 10 761 fois - Téléchargée 2 277 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

Pourquoi çà ne marche pas avec des images png?
cyberbelette
Messages postés
13
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
16 novembre 2016

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

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

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

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.