Xml et flash

Résolu/Fermé
Baboune17 Messages postés 3 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 22 février 2008 - 15 janv. 2008 à 14:59
 DavidB - 15 avril 2010 à 18:57
Bonjour,

Débutante en Flash, je souhaiterais avoir de l'aide. Voilà mon problème : j'ai un fichier xml (bien formé !) que je veux appeler en cliquant sur un bouton que j'ai crée dans ma scène. Le bouton a été testé (trace "coucou") et fonctionne.
Pas moyen de faire afficher les descriptions contenues dans mon fichier xml.

est ce que quelqu'un peut m'aider, merci d'avance
A voir également:

12 réponses

Bonjour Max,
Merci d'avoir pris le temps de me répondre mais je ne comprends pas l'intérêt de la fonction ToString () dans mon script.
C'est un fichier xml que je souhaite appeler avec mon bouton pas une chaine de caractères. Peux tu être plus explicite ? Merci d'avance .
Voici mon script, si ça peut t'aider à le corriger...

/test de mon bouton
//quarantecm.onPress=function(){
//trace("vous avez cliqué sur moi");
//};

import mx.xpath.XPathAPI;

descriptif.text = "";

function descriptionCible(nomCible) {
var chemin = "/cibles/cible[@nom='"+nomCible+"']/description";
var noeud:XMLNode;

noeud = XPathAPI.selectSingleNode(cibles_xml.firstChild, chemin).firstChild.nodeValue;
return (noeud);
}

var cibles_xml:XML = new XML();
quarantecm.onPress=load("cibles.xml");
cibles_xml.ignoreWhite = true;
cibles_xml.load("arcs.xml");
cibles_xml.onLoad = function(success:Boolean) {
if (success) {
//trace("XML chargé");
gotoAndStop(2);
} else {
trace("Error loading XML");
}
};
stop();
1
Salut Baboune,

Essaie la fonction "ToString()".
Pour plus de détails, regarde à cette adresse : https://codes-sources.commentcamarche.net/

A+
0
Quand tu dis que tu veux l'appeller, que veux tu dire par là ?
tu veux l'afficher à l'écran ? tu veux le charger ? ou autres ?

Max
0
Quand je dis que je veux l'appeler, j'entends par là qu'en cliquant sur le bouton que j'ai crée sur la scène je veux charger le fichier xml, lequel s'affichera dans un cadre sur ma scène.

Baboune
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour ton explication, Baboune.
Si j'ai bien compris ton code : tu as plusieurs fichiers xml rangés dans des répertoires différents et tu souhaites appeler l'un d'entre eux avec ton bouton.
Ton bouton appelle la fonction descriptionCible(nomCible) et est sensé aller dans le bon répertoire et trouver le bon fichier xml, ensuite il doit le charger, et afficher le contenu.
D'après les informations que j'ai, ta fonction descriptionCible(nomCible) a l'air de coincer le tout.

Pourrais tu m'envoyer ton fichier xml pour que je le regarde de plus près ?
0
ce n'est pas tout à fait ça. sur ma scène j'ai plusieurs boutons : quarantecm, soixantecm, trispot, cible3D. Quand je clique sur chaque bouton, je souhaiterais que soit chargé le fichier xml et que dans ma scéne apparaissent les descriptions correspondant aux différentes cibles.
ex : en cliquant sur le bouton quarantecm devrait apparaître sur ma scène la description de cette cible.

Voici mon fichier xml :

Encore merci pour ton aide...

<?xml version="1.0" encoding="ISO-8859-1"?>
<cibles>

<cible nom="quarantecm">
<description> Le centre des cibles de quarante centimètres est à 1.60 m de hauteur par rapport au sol. Les distances de tir sont de 18 m (Fita),
15 m, 20m ou 25m (Field).
</description>
</cible>

<cible nom="soixantecm">
<description> Le centre des cibles de soixante centimètres est à 1.30 m de hauteur par rapport au sol. Les distances de tir sont de 25 m (Fita)
30 m, 35m ou 40m (Field).
</description>
</cible>

<cible nom="trispot">
<description> Le centre des cibles trispot est à 1,30 m du sol par rapport au centre du "jaune" du 2ème spot. Les distances de tir sont de 18 m ou de 25m.
</description>
</cible>

<cible nom="cible3D">
<description> Le Tir 3D se pratique sur un parcours naturel accidenté découvert ou boisé, en distances inconnues et dans un temps limité, soit de 20 cibles,
à effectuer 2 fois ; soit de 40 cibles, à effectuer 1 fois.
Les tireurs sont regroupés en pelotons comprenant entre 3 et 5 personnes, avec un chef de peloton.
Pour chaque cible du parcours, le pas de tir est matérialisé par des piquets de couleur correspondant aux diverses catégories, et que le tireur doit
toucher afin de tirer. Les distances de tir sont de 5 à 45 m pour les piquets rouges (arcs libres)et de 5m à 35 m pour les piquets bleus (autres
catégories).
</description>
</cible>

</cibles>
0
dans ton fichier xml, remplace la 1ere ligne :
<?xml version="1.0" encoding="ISO-8859-1"?>

par celle-ci :
<?xml version="1.0" encoding="UTF-8"?>

Ensuite, enregistre ton fichier en utf8 et reteste ton flash.

Max
0
j'avais déjà essayé mais ça ne change rien...
0
peux tu m'envoyer ton fla pour que je le regarde de plus près ?
0
Baboune17 Messages postés 3 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 22 février 2008
17 janv. 2008 à 14:36
ce serait avec plaisir mais apparemment je ne peux envoyer une pièce jointe dans ce forum (suis peut être aveugle) et je ne connais pas ta messagerie perso...
0
ça y est mon problème est résolu. merci pour ton aide.

La solution était la suivante, avec une bonne définition des différentes variables :

/*test de mon bouton
quarantecm.onPress=function(){
trace("vous avez cliqué sur moi");
};*/

import mx.xpath.XPathAPI;
zone.text = ""; // on définit la zone où devra se charger le fichier xml
// fonction pour naviguer dans XML, et qui retourne la description textuelle d'un arc
function descriptionCible(nomCible) {
var chemin = "/cibles/cible[@nom='"+nomCible+"']/description"; //on donne le chemin, dans le fichier xml, de l'info qu'on veut charger dans flash
var noeud:XMLNode;
// on cherche le noeud éventuel qui correspond. En théorie, une seul cible au maximum doit porter ce nom !
noeud = XPathAPI.selectSingleNode(proprieteCibles.firstChild, chemin).firstChild.nodeValue;
return (noeud);
}

//function decrire(Bouton, Textexml)
//{
var proprieteCibles:XML = new XML();
proprieteCibles.ignoreWhite = true;
proprieteCibles.load("cibles.xml");
proprieteCibles.onLoad = function(success) {
if (success) {
//boutonquarantecm.enabled = false;
// affiche les données de proprieteCibles
/* il faut que le "ignore white" soit sur "true" La valeur par défaut est false.
Lorsque le réglage est true, les nœuds de texte qui ne contiennent que des espaces
vierges sont supprimés au cours de l’analyse. Les nœuds de texte qui contiennent un
espace vierge avant ou après leur nom ne sont pas affectés.*/

}
else{"chargement impossible";
}
}
0
bonjour,
je veut ouvrir un fichier de type application windows (.exe) dans une fenetre crée enflash,
quel qun peut m'aider?
mercie
0
Bonjour,
Pour lancer un .exe essaye avec FSCommande
0