IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004] problèmes d'enregistrement XML


Sujet :

Flash

  1. #1
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut [FLASH MX2004] problèmes d'enregistrement XML
    Bonjour,

    J'ai développé un petit jeu sous flash avec les scores enregistrés dans un fichier XML. Problème : l'enresgitrement ne se fait pas. Débutante complète en PHP, je pense que c'est de là que vient l'erreur. Quelqu'un peut-il m'aider ?

    Voici "scores.xml"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8" ?>
    <root>
    	<joueur nom="Joueur 1" score="150"/>
    	<joueur nom="Joueur 2" score="270"/>
    	<joueur nom="Joueur 3" score="210"/>
    	<joueur nom="Joueur 4" score="50"/>
    </root>
    Voici "uploadxml.php"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body bgcolor="#000000">
    <?
    // Récupération des données via POST
    $a_renvoyer=$_POST["var_envoi"];
     
    // Enregistrer les donnees
    $fichier = 'scores.xml';
    $fp=fopen($fichier,"a+");
    fwrite($fp,"$a_renvoyer \n");
    fclose($fp);
    ?>
    Et enfin ma fonction d'enregistrement dans mon .fla :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //variables pour l'enregistrement du score
    Sortie = new LoadVars();
    Entree = new LoadVars();
     
    function enregistrer_score():Void {
    	Sortie.var_envoi = "<joueur nom=\""+nomjoueur+"\" score=\""+scorefinal+"\" />";
    	Sortie.sendAndLoad("uploadxml.php", Entree, "POST");
    	Entree.onLoad = function(success) {
    		if (success) {
    			alerte = "Enregistrement reussi !"
    			timer();
    		}
    	}
    	help_btn._visible = true;
    	rejouer_btn._visible = true;
    	valider_btn._visible = false;
    }
    Merci d'avance pour votre aide !

  2. #2
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Heu... y'a personne pour m'aider ? Même un tout petit peu ????

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Je n'y connais pas grand chose, mais je l'ai comparer à mon code xml, php et as de mon livre d'or.

    Tu n'as pas besoins des root dans ton xml, car comme tu referme la balise, cela pourrait bloquer l'arrivé des variables.

    Sinon, pour éviter des problèmes d'espace je rajouterais cette ligne dans ton code php:

    $a_renvoyer=stripslashes($a_renvoyer); que tu placeras après celle-ci:

    $a_renvoyer=$_POST["var_envoi"];

    C'est quoi comme jeux?

    Peut-on le voir?

  4. #4
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Salut !

    Tout d'abord, merci beaucoup poour ta réponse. Le problème, c'est que si j'enlève les <root> de mon fchier, j'arrive plus à afficher mes scores dans mon tableau de flash. !!!!! Dois-je faire une autre méthode d'affichage pour l'enlever (j'avais utilisé un composant DataGrid). Ainsi, le php devrait fonctionner ?

    Sinon, pour le jeu, c'est un petit jeu de parodie de l'entraînement d'une équipe folklos de rugby ! Faut faire les mouvements demandés quand le coach apparait et discuter dès qu'il disparait ! Il est en ligne, mais le serveur sur lequel il est en maintenance ! Je comptais donner l'adresse quand il marcherait car c'est grâce au forum que j'ai pu le faire (une manière de dire merci à tous ceux qui m'ont aidé quoi !!!! )

    Voilààà !

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    C'est gentils de nous montrer ton jeux.

    Si jamais, j'en avais fait un il y a longtemps sur http://www.membres.lycos.fr/fortrox/

    Bon, il est moyen, je n'ai jamais eu le temps de le terminer.

    Pour les score j'étais passer par une base de donnée mysql, mais le xml est pas mal du tout, je vais essayer de t'aider à trouver une solution.

    Alors pour la lectre tu as mis quoi comme code?

  6. #6
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Pour afficher mes scores dans mon DataGrid, voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    //tableaux d'affichage
    import mx.controls.gridclasses.DataGridColumn;
    scores_tab.addColumnAt(0,"Rang");
    scores_tab.addColumnAt(1, "Nom");
    scores_tab.addColumnAt(2, "Points");
    //dimensions des colonnes
    scores_tab.getColumnAt(0).width = 60;
    scores_tab.getColumnAt(2).width = 90;
    scores_tab.getColumnAt(1).width = scores_tab.width-scores_tab.getColumnAt(2).width-scores_tab.getColumnAt(0).width;
     
    //variable pour définir le chemin depuis la racine parce que sinon, this se rapporte à actu
    var chemin = this;
    var nbscores:Number;
    var rg:Number=1;
    //------------------CREATION DE L'OBJET XML------------------------
    winners = new XML();
    // les espaces vides sont supprimés
    winners.ignoreWhite = true;
    //chargement du document XML
    winners.load("scores.xml");
    //------------------AFFICHAGE DU TEXTE------------------------
    winners.onLoad = function() {
    	nbscores=winners.firstChild.childNodes.length;
    	//on fait une première boucle pour avoir les valeurs de tous les scores possibles
    	for (j=300;j>=0;j--) {
    		//on fait une deuxième boucle pour avoir les valeurs des scores des joueurs
    		for(i=0; i<nbscores; i++){
    			//si le score du joueur est égal à celui mémorisé dans j, on l'affiche
    			if(winners.firstChild.childNodes[i].attributes.score==j){
    				var objet= {Rang:rg,Nom:winners.firstChild.childNodes[i].attributes.nom,Points:winners.firstChild.childNodes[i].attributes.score};
    				var objetAjouté = chemin.scores_tab.addItem(objet);
    				rg++;
    			}
    		}
    	}
    }
    //winners.close();
    this.retour_btn.onRelease=function():Void{
    	_root.scores_mc.unloadMovie();
    }
    C'est peut-être pas le meilleur, mais ça marche !!!!

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Essaye voir ce que je t'ai dit en haut avec ce code pour le xml:

    //tableaux d'affichage
    import mx.controls.gridclasses.DataGridColumn;
    scores_tab.addColumnAt(0,"Rang");
    scores_tab.addColumnAt(1, "Nom");
    scores_tab.addColumnAt(2, "Points");
    //dimensions des colonnes
    scores_tab.getColumnAt(0).width = 60;
    scores_tab.getColumnAt(2).width = 90;
    scores_tab.getColumnAt(1).width = scores_tab.width-scores_tab.getColumnAt(2).width-scores_tab.getColumnAt(0).width;

    //variable pour définir le chemin depuis la racine parce que sinon, this se rapporte à actu
    var chemin = this;
    var nbscores:Number;
    var rg:Number=1;
    //------------------CREATION DE L'OBJET XML------------------------
    winners = new XML();
    // les espaces vides sont supprimés
    winners.ignoreWhite = true;
    //chargement du document XML
    if (parse_all == true) {
    winners.load("scores.xml?anticache="+Math.random());
    }
    //------------------AFFICHAGE DU TEXTE------------------------
    winners.onLoad = function() {
    nbscores=winners.childNodes.length-1;
    //on fait une première boucle pour avoir les valeurs de tous les scores possibles
    for (j=300;j>=0;j--) {
    //on fait une deuxième boucle pour avoir les valeurs des scores des joueurs
    for(i=0; i<nbscores; i++){
    //si le score du joueur est égal à celui mémorisé dans j, on l'affiche
    if(winners.childNodes[i].attributes.score==j){
    var objet= {Rang:rg,Nom:winners.childNodes[i].attributes.nom,Points:winners.childNodes[i].attributes.score};
    var objetAjouté = chemin.scores_tab.addItem(objet);
    rg++;
    }
    }
    }
    }
    //winners.close();
    this.retour_btn.onRelease=function():Void{
    _root.scores_mc.unloadMovie();
    }

  8. #8
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Ca marche toujours pas ! Elle sert à quoi cette ligne ? C'est quoi "parse_all" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (parse_all == true) {
    winners.load("scores.xml?anticache="+Math.random());
    }

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    A rien, lol.

    C'est cela les copies-coller

    Ps. par contre laisse : ?anticache="+Math.random(), ca permet de rafraichir ta page. si tu reviens dessus, tu n'as pas besoins de relancer ton anim flash pour voir les changements.

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Sinon je chargeais comme ça mon xml de livre d'or:

    mon_xml.onLoad = function(succes) {
    if (succes) {
    number = mon_xml.childNodes.length-1;
    _root.livre.MessageListe = new Array();
    for (i=number; i>-1; i--) {
    _root.livre.MessageListe[i] = new Array();
    _root.livre.MessageListe[i].push(mon_xml.childNodes[i].attributes.date, mon_xml.childNodes[i].attributes.nom, mon_xml.childNodes[i].attributes.pays, mon_xml.childNodes[i].attributes.email, mon_xml.childNodes[i].attributes.message);
    _root.livre.contenu2.htmlText += _root.livre.MessageListe[i][0]+"<br>";
    _root.livre.contenu2.htmlText += "Nom : "+_root.livre.MessageListe[i][1]+"<br>";
    _root.livre.contenu2.htmlText += "Pays : "+_root.livre.MessageListe[i][2]+"<br>";
    _root.livre.contenu2.htmlText += "Email : <a href=\"mailto:"+_root.livre.MessageListe[i][3]+"\">"+_root.livre.MessageListe[i][3]+"</a><br>";
    _root.livre.contenu2.htmlText += "<br>";
    _root.livre.contenu2.htmlText += _root.livre.MessageListe[i][4]+"<br>";
    _root.livre.contenu2.htmlText += "<br>----------------------------------------------------------------------------<br><br>";
    }
    }
    };

  11. #11
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Tu affichais tout ça dans un texte dynamique qui se trouvait dans "contenu2" c'est ça ???? Et en fait, tu mettais les données de ton XML dans un tableau si j'ai bien compris ?

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Exact, bonne analyse et cela marchait, mon xml ayant que ces lignes de code:

    <?xml version="1.0" encoding="UTF-8"?>
    <livredor date="Dimanche 27 Aout 2006 23:01:27" nom="Oswald Loïc" pays="Suisse" email="admin@loswald.com" message="Ceci est un message de Bienvenue" />


    ...

  13. #13
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Bon, je vais essayer d'adapter ça et de virer mon Datagrid et je te tiens au courant !!! Merci pour tout en tous cas !

  14. #14
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Re-bonjour,

    J'ai donc essayé d'adapter les conseils reçu à mon jeu, mais ça ne marche toujours pas !!! Je remet mes fichiers !

    scores.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8" ?>
    <joueur nom="Joueur 1" score="150"/>
    <joueur nom="Joueur 2" score="270"/>
    <joueur nom="Joueur 3" score="210"/>
    <joueur nom="Joueur 4" score="50"/>
    uploadxml.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <body bgcolor="#000000">
    <?
    // Récupération des données via POST
    $a_renvoyer=$_POST["var_envoi"];
    $a_renvoyer=stripslashes($a_renvoyer);
    $ValeurText = $_POST['ValeurText'];
    //Affichage des données
    echo "$ValeurText \n";
    // Enregistrer les donnees
    $fichier = 'scores.xml';
    $fp=fopen($fichier,"a+");
    fwrite($fp,"$a_renvoyer \n");
    fclose($fp);
    ?>
    et enfin, l'enregistrement des données dans flash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    stop();
    //variables pour l'enregistrement du score
    Sortie = new LoadVars();
    Entree = new LoadVars();
     
    player_txt.text = nomjoueur+" : "+scorefinal;
    help_btn._visible = false;
    rejouer_btn._visible = false;
    valider_btn._visible = true;
     
    //code du bouton valider
    this.valider_btn.onRelease = function() {
    	enregistrer_score();
    };
     
    function enregistrer_score():Void {
    	Sortie.var_envoi = "<joueur nom=\""+nomjoueur+"\" score=\""+scorefinal+"\" />";
    	Sortie.sendAndLoad("uploadxml.php", Entree, "POST");
    	Entree.onLoad = function(success) {
    		if (success) {
    			alerte = "Enregistrement reussi !"
    		}
    	}
    	help_btn._visible = true;
    	rejouer_btn._visible = true;
    	valider_btn._visible = false;
    }
    Voili voilou ! Pour info : l'affichage des scores marche très bien (dans un texte dynamique maintenant). C'est toujours l'enregistrement qui ne marche pas ! J'ai dû me planter quelque part car j'ai fais pleins d'essais ! Je suis même pas sûre que mon code soit bon !!!! Enfin bon, si quelqu'un a une idée...

  15. #15
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Bon ! En faisant pleins de recherches, j'ai changé ma fonction "enregistrer_score()" et j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function enregistrer_score():Void {
    	var maVar = "<joueur nom=\""+nomjoueur+"\" score=\""+scorefinal+"\" />";
    	loadVariables( "uploadxml.php?var_envoi=" + maVar,"","POST");
    	help_btn._visible = true;
    	rejouer_btn._visible = true;
    	valider_btn._visible = false;
    }
    Mais ça marche toujours pas !!!! Help Please ????

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Essaye ça:

    // Fonction envoyer le score
    Sortie = new LoadVars();
    Entree = new LoadVars();

    function enregistrer_score() {





    Sortie.var_envoi = "<joueur nom=\""+nomjoueur+"\" score=\""+scorefinal+"\" />";
    Sortie.sendAndLoad("uploadxml.php", Entree, "POST");


    Entree.onLoad = function(success) {
    if (success) {

    help_btn._visible = true;
    rejouer_btn._visible = true;
    valider_btn._visible = false;

    }
    };


    }

  17. #17
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Bouh ! Ca marche toujours paaaaaaas !

    Y'a-t-il quelque chose à faire pour que Flash reconnaisse php ou que php reconnaisse flash (de même entre xml et php) ? du genre un "#include..." ou activer une préférence ????

    @melonmaudic : tu pourrais me donner l'adresse du site où il y a ton livre d'or ? Je voudrais juste voir si ça marche car même les fichiers sur mon serveurs ne marchent pas !!!! En tous cas, merci beaucoup de te pencher sur mon problème et d'y passer du temps !

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Ok, www.aliose.ch

    vas sous n'importe quoi, car sur le menu principale tu n'as pas acces au livre d'or, puis tout en bas dans une photo jaune, tu as mon livre d'or.

  19. #19
    Membre confirmé Avatar de morgiane
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Je t'ai laissé un petit message pour te féliciter sur ton site : il est vraiment génial ! Et tes chansons sont sympas comme tout ! Juste une petite info : dans ton menu de démarrage, quand on est dans la section "me connaître", tu as oublié le "î" dans le titre qui apparaît en bas !!!

    Sinon, pour en revenir à mon problème, est-ce que ton fichier php ressemble à ça ou as-tu utilisé une autre méthode ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    // Récupération des données via POST
    $a_renvoyer=$_POST["var_envoi"];
    $a_renvoyer=stripslashes($a_renvoyer);
     
    // Enregistrer les donnees
    $fichier = 'scores.xml';
    $fp=fopen($fichier,"a+");
    fwrite($fp,"$a_renvoyer \n");
    fclose($fp);
    ?>

  20. #20
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    642
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 642
    Par défaut
    Lol, en faite il s'aggit de ma soeur.

    Je vais vérifier l'erreur, merci de me l'avoir signaler.

    Edit: Merci j'avais oublier d'intégrer ce caractère.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  2. [FLASH MX2004] Problème avec un datagrid & xml
    Par cedonline dans le forum Flash
    Réponses: 72
    Dernier message: 15/11/2005, 15h21
  3. [FLASH MX2004] Problème de reconnaissance des caractères
    Par Spikefreeman dans le forum Flash
    Réponses: 10
    Dernier message: 04/01/2005, 23h08
  4. [FLASH MX2004] Problème pour faire un bouton play
    Par melanie075 dans le forum Flash
    Réponses: 13
    Dernier message: 16/12/2004, 22h55
  5. [FLASH MX2004] Problème de menu avec explorer
    Par lyne dans le forum Flash
    Réponses: 2
    Dernier message: 24/08/2004, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo