Bonjour à tous,

j'ai une carte de france avec tous les departements, les points rouges representent les magasins et qd on passe dessus il y a une petite fenetre qui s'ouvre avec des infos txt ms j'aimerai bien aussi y afficher une image ds cette petite fenetre...

Mon probleme c'est que dès que je modifie mon fichier xml pr mettre l'image il ne m'affiche + mon point rouge...
voici la structure de mon fichier xml


<?xml version="1.0" encoding="UTF-8" ?>

<liste>

<cartefr id="1" nom="Nom du magasin" ville="Ville">

<methode type="087/00.00.00" />

<temps adresse="Rue du paradis,3" />

<img src="mag.gif"/>

<lieu departement="Paris1" numero="75" />

</cartefr>
</liste>


Le code qui est sur le 2eme img cle de la scene



// LECTURE DU XML ET RANGEMENT DANS UN TABLEAU:
// Le but va etre de créer un tableau d'objets 'table'
// correspondant à chaque magasin:
stop();
var table = new Array();
var lenumero; // ca c'est juste pour l'exception des departements 77, 78, 91, 92, 93, 94 et 95 qui seront rassemblés dans la region parisienne (75)
// Declaration classique du XML, avec lecture d'un noeud:

myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("./departements/depart.xml"); // c'est l'adresse du fichier XML
myXML.onLoad = function(flag) {
    if (flag) {
		i=0;
		x = myXML.firstChild;
		while (x.childNodes[i] != undefined) {
			// L'objet créé pour le tableau va s'appeler 'cartefr',
			// qui va etre rempli par rapport à ce qu'il y a dans le XML
			var cartefr =  new Object();
			cartefr.id = x.childNodes[i].attributes.id;
			cartefr.nom = x.childNodes[i].attributes.nom;
			cartefr.ville = x.childNodes[i].attributes.ville;
			cartefr.methode = x.childNodes[i].childNodes[0].attributes.type;
			cartefr.temps = x.childNodes[i].childNodes[1].attributes.adresse;
			cartefr.departement = x.childNodes[i].childNodes[2].attributes.departement;
			cartefr.img = x.childNodes[i].childNodes[2].attributes.img;
			lenumero = x.childNodes[i].childNodes[2].attributes.numero;
			// Ca, c'est pour la région parisienne: 
			// On regroupe tous les départements en un seul (le 75)
			if(lenumero==91 || lenumero==92 || lenumero==93 || lenumero==94 || lenumero==95 || lenumero==77 || lenumero==78){
				cartefr.numero = 75;
			}else{
				cartefr.numero = lenumero;
			}
			
			// Ca y est! L'objet cartefr est remplie de plein d'infos utiles par la suite,
			// maintenant, on le range dans le tableau 'table' avec cette instruction:
			table.push(cartefr);
			i++;
		}
		// Une fois terminé, on passe à l'affichage...
		play();
	}
}


et le code de la 1ere img du clip "point" pr afficher les points rouge et les donnees ds la fenetre


stop();
// Voila: rien de compliqué, ni de complexe
titre = ville+" "+nom+"\n("+departement+")";
texte = " "+temps+"\n"+methode;
img = ""+img+"";
// Y a pas courriel, parce que la zone 
// de texte dynamique s'appelle aussi courriel


merci pour votre aide[/i][/i][/i][/i][/i][/i][/i][/i][/i]
Modifié par sanka (10 Oct 2007 - 16:20)
Modérateur
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

upload/1-code.gif

Pour ton problème, celui-ci se situe du côté de ton code de lecture et de rangement. Sans doute qu'en modifiant ton fichier xml, tu chamboules la structure ce qui fait que tes accès x.childNodes[ i].attributes.nom, x.childNodes[ i].attributes.ville, etc... s'en retrouvent falsifiés.

... mais sinon, pourquoi ne passes-tu pas par xslt pour sélectionner ces données et monter ta page en fonction de celles-ci ?
Merci pour tes pistes je vais regarder ca de plus près.

Pour le xslt je ne vois pas trop comment faire, je suis débutante en xml...je pensais que xsl c'etait pour mettre le xml en page mais apparement non...
Ca marche mes points rouges s'affichent! je m'etais bien trompée dans le chemin! Merci!

J'ai un autre petit problème quand même...il ne m'affiche pas l'image. Il n'y a pas un syntaxe particulière quand c'est une image? le src n'est pas suffisant?
Modérateur
Salut, Smiley smile

Si le document que tu affiches est un xml, les images ne sont pas affichées d'origine car il n'y a aucun formatage par défaut; l'attribut src ne représente que du texte.

Pour obtenir cette image, on transforme généralement le xml en xhtml via xslt afin de pouvoir se servir de l'élément image défini selon les spécifications du W3C; c'est le plus simple.
Si vraiment on souhaite rester en xml, on peut aussi se référer aux entités non analysées et notations d'une DTD mais les applications supportant ces références sont de plus en plus rares donc mieux vaut passer par la première solution.
Modifié par koala64 (15 Oct 2007 - 08:55)
salut,

on m'a conseille d'afficher mon image dans un clip...le xslt je comprends pas trop comment je pourrais y arriver...

mon affichage d'image ne marche quand meme pas avec le clip, jai verifier mes chemins et je pense ne pas avoir fait d'erreur...

if (flag) {
		i=0;
		x = myXML.firstChild;
		while (x.childNodes[i] != undefined) {
			// L'objet créé pour le tableau va s'appeler 'cartefr',
			// qui va etre rempli par rapport à ce qu'il y a dans le XML
			var cartefr =  new Object();
			cartefr.id = x.childNodes[i].attributes.id;
			cartefr.nom = x.childNodes[i].attributes.nom;
			cartefr.ville = x.childNodes[i].attributes.ville;
			cartefr.methode = x.childNodes[i].childNodes[0].attributes.type;
			cartefr.temps = x.childNodes[i].childNodes[1].attributes.adresse;
			cartefr.img = x.childNodes[i].childNodes[2].attributes.src;
			//img_mc.portePhoto_mc.loadMovie(cartefr.img);
			cartefr.departement = x.childNodes[i].childNodes[3].attributes.departement;
			lenumero = x.childNodes[i].childNodes[3].attributes.numero;
			// Ca, c'est pour la région parisienne: 
			// On regroupe tous les départements en un seul (le 75)
			if(lenumero==91 || lenumero==92 || lenumero==93 || lenumero==94 || lenumero==95 || lenumero==77 || lenumero==78){
				cartefr.numero = 75;
			}else{
				cartefr.numero = lenumero;
			}
			
			// Ca y est! L'objet cartefr est remplie de plein d'infos utiles par la suite,
			// maintenant, on le range dans le tableau 'table' avec cette instruction:
			table.push(cartefr);
			i++;
		}
		// Une fois terminé, on passe à l'affichage...
		play();
	}


et le code pr afficher mes données


stop();

titre = ville+" "+nom+"\n("+departement+")";
texte = " "+temps+"\n"+methode;
img_mc.portePhoto_mc.loadMovie(cartefr.img);


merci Smiley cligne
[/i][/i][/i][/i][/i][/i][/i][/i][/i]
Modérateur
arf... Au temps pour moi. J'avais mal interprété ta demande. Smiley confus

ben... Je pense que ceci et celà devraient pouvoir t'aider. Smiley smile

A défaut, je pense que tu ferais mieux de te renseigner sur un forum qui parle de Flash (ce qui n'est pas notre cas) car perso, je ne connais pas du tout l'actionscript; ton problème est plutôt de cet ordre que du côté xml pur.
Modifié par koala64 (15 Oct 2007 - 10:08)