E-anim
AccueilPortailFAQRechercherS’enregistrerConnexion
Poster un nouveau sujet   Répondre au sujet
 passage et lecture de variable sans rafraichissementVoir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
christophe_D
programmeur
programmeur



Age : 34
Inscrit le : 23 Juin 2006
Messages : 1812
Localisation : Frasne (25)
diver : papa de 4 enfants , toujours sur les 4 chemins
Loisirs : programmation en tous genres, defendre le libre , linux

MessageSujet: passage et lecture de variable sans rafraichissement   Lun 4 Fév - 23:45

gestion de donnee via un fichier XML

niveau : connaissance avance mtasc (ActionScript) et php

le fichier XML en lui meme

comment est il fais; voyons plutot un exemple d'un xml basique

Code:

<?xml version="1.0" encoding="iso-8859-1" ?>
<initialisation>
<definition truc="er" machin="r" chose="ee"/>
</initialisation>
<creation>
<definition truc="ewr" machin="rw2" chose="12"/>
<definition truc="eqr" machin="rv" chose="13"/>
<definition truc="eqre" machin="ar" chose="14"/>
</initialisation>


petite explication pour la suite des operations
la ligne suivante est toujours obligatoire pour faire un XML
Code:

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

mais il possible de genere un XML via un PHP en faisant
Code:

echo '<?xml version="1.0" encoding="iso-8859-1" ?>
';


puis vous remarquerai que nous avons comme en HTML une balise initialisation
ceci est un noeud comme creation
dedans on a un sous noeud definition avec truc , machin , chose qui sont en quelque sorte des parametres
les termes de noeuds sont libres car en actionscript on utilisera que leur positions ansi que leur sous noeud
par contre les valeurs truc , machin , chose elles seront importantes !!

deja comment recuperer les valeurs en PHP
il faudra par exemple recuperer les variable php avec
Code:

ma_valeur=$_REQUEST["snd_swf"];


pour envoyer un requete vers un fichier PHP depuis l'actionScript
on fera comme ceci
Code:

static function send_php() {
phpsnd.snd_swf="v1";
}


ici on ne traite qu'une variable , mais elle pourront etre plus nombreuses !!!

puis pour envoyer la requete

Code:

var phpsnd :LoadVars = new LoadVars();
var rec_xml:XML = new XML();
rec_xml.ignoreWhite=true; // important evite les problemes d'espaces
phpsnd.snd_swf="v1";
phpsnd.sendAndLoad("./requete.php",rec_xnd,"POST");


requete.php sera le fichier PHP qui traitera la requete et retournera un fichier XML
la variable rec_xml sera le fichier XML retourne
apres pour lire le fichier XML genere
on utilisera la methode onload

du style
Code:

rec_xml.onLoad = function(status:Boolean) {
if (status) {
// action a faire si pas de soucis de lecture
} else {
// action a faire si erreur de lecture
}
}



maintenant comment lire le XML genere

suivant notre exemple ci dessus , le noeud initialisation et le premier soit l'index 0
donc on recupera la valeur truc, machin , chose comme suis
Code:

var truc : String = rec_xml.childNodes[0].childNodes[0].attributes.truc;
var machin : String = rec_xml.childNodes[0].childNodes[0].attributes.machin;
var chose : String = rec_xml.childNodes[0].childNodes[0].attributes.chose;


et pour les definitions creation qui est au 2ieme noeud

Code:

// premiere ligne de creation
var truc : String = rec_xml.childNodes[1].childNodes[0].attributes.truc;
var machin : String = rec_xml.childNodes[1].childNodes[0].attributes.machin;
var chose : String = rec_xml.childNodes[1].childNodes[0].attributes.chose;
// deuxieme ligne de creation
var truc2 : String = rec_xml.childNodes[1].childNodes[1].attributes.truc;
var machin2 : String = rec_xml.childNodes[1].childNodes[1].attributes.machin;
var chose2 : String = rec_xml.childNodes[1].childNodes[1].attributes.chose;



donc ce qui donnera finalement pour l'action Script
Code:

static function send_php() {
var phpsnd :LoadVars = new LoadVars();
var rec_xml:XML = new XML();
rec_xml.ignoreWhite=true; // important evite les problemes d'espaces
phpsnd.snd_swf="v1";
phpsnd.sendAndLoad("./requete.php",rec_snd,"POST");
rec_xml.onLoad = function(status:Boolean) {
if (status) {
// lecture de definition
var truc : String = rec_xml.childNodes[0].childNodes[0].attributes.truc;
var machin : String = rec_xml.childNodes[0].childNodes[0].attributes.machin;
var chose : String = rec_xml.childNodes[0].childNodes[0].attributes.chose;
// premiere ligne de creation
var truc1 : String = rec_xml.childNodes[1].childNodes[0].attributes.truc;
var machin1 : String = rec_xml.childNodes[1].childNodes[0].attributes.machin;
var chose1 : String = rec_xml.childNodes[1].childNodes[0].attributes.chose;
// deuxieme ligne de creation
var truc2 : String = rec_xml.childNodes[1].childNodes[1].attributes.truc;
var machin2 : String = rec_xml.childNodes[1].childNodes[1].attributes.machin;
var chose2 : String = rec_xml.childNodes[1].childNodes[1].attributes.chose;
} else {
// action a faire si erreur de lecture
}
}
}


et du cote PHP
Code:

echo '<?xml version="1.0" encoding="iso-8859-1" ?>';

echo '<initialisation>';
echo '<definition truc="'.$PHP_truc.'" machin="'.$PHP_machin.'" chose="'.$PHP_chose.'"/>';
echo '</initialisation>';
echo '<creation>';
echo '<definition truc="'.$PHP_truc1.'" machin="'.$PHP_machin1.'" chose="'.$PHP_chose1.'"/>';
echo '<definition truc="'.$PHP_truc2.'" machin="'.$PHP_machin2.'" chose="'.$PHP_chose2.'"/>';
echo '<definition truc="'.$PHP_truc3.'" machin="'.$PHP_machin3.'" chose="'.$PHP_chose3.'"/>';
echo '</initialisation>';

?>


ceci est un exemple rapide , qui sera a adapter suivant vos besoins

par exemple vous pourrais faire un sendAndLoad() sans avoir un onload() , pour eviter un bloquage dans un jeux qui sera jouer off-line

et pour finir tres important , action Script ne permet de lire un fichier PHP hors du domaine du SWF appelant !!
_________________
un petit jeux sympa
L'urgent c'est fait,
L'impossible est en train de se faire,
Un miracle ?? laisse moi au minimun 24H !!!...
L'action script a l'etat pur
Mes meilleurs photos


Dernière édition par le Mer 6 Fév - 8:40, édité 3 fois
Revenir en haut Aller en bas
the virus
co-administrateur
co-administrateur



Age : 15
Inscrit le : 31 Déc 2005
Messages : 1979

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mar 5 Fév - 17:25

peut tu fair un exemple et donné le fichier source plz
_________________
Le chat reviendra mais la il est tro lourd

Si je critique vos créa c'est que je pense que vous pouver fair mieux!!
Revenir en haut Aller en bas
Rock Lee
modo
modo



Inscrit le : 03 Mai 2006
Messages : 3319

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mar 5 Fév - 18:54

super Smile merci
ps: les tout premier codes(xml) ne sont plus inscrit :s
_________________
Revenir en haut Aller en bas
christophe_D
programmeur
programmeur



Age : 34
Inscrit le : 23 Juin 2006
Messages : 1812
Localisation : Frasne (25)
diver : papa de 4 enfants , toujours sur les 4 chemins
Loisirs : programmation en tous genres, defendre le libre , linux

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mar 5 Fév - 19:24

the virus a écrit:
peut tu fair un exemple et donné le fichier source plz


ici tu as toutes les bases !!!!

faire un exemple , ne fera que t'embrouiller !! , car j'ai une maniere de penser les choses assez hors normes .

essaie plutot de faire par toi , que d'adapter un truc que tu comprendra pas ...


Rock Lee a écrit:
super Smile merci
ps: les tout premier codes(xml) ne sont plus inscrit :s


c'est corrige !!!
petit bug .....
_________________
un petit jeux sympa
L'urgent c'est fait,
L'impossible est en train de se faire,
Un miracle ?? laisse moi au minimun 24H !!!...
L'action script a l'etat pur
Mes meilleurs photos
Revenir en haut Aller en bas
Beldjilali
programmeur
programmeur



Inscrit le : 24 Juin 2007
Messages : 2154

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mar 5 Fév - 20:19

j'ai quelques questions parce que je patoge dur là.

la fonction : $ma_valeur=$_REQUEST["snd_swf"];

on ne s'en sert pas pour récuperer les variables dans le php?

Pourquoi on passe par un php puisqu'on peut utiliser que le xml? à moins qu'il faut passer par une base de donnée mysql ce qui explique le passage par le php.

enfin dans ton code la ligne
phpsnd.sendAndLoad("./requete.php",rec_snd,"POST");
doit être
phpsnd.sendAndLoad("./requete.php",rec_xml,"POST");
je pense.

Merci pour tout ça, c'est dejà une grande avancé
_________________


Défoule toi sur mon ami Smile et fais le jongler :

Tu peux aussi jongler ton ami (la photo et l'image de fond de ton choix) ... prochainement sur mon site.
Revenir en haut Aller en bas
christophe_D
programmeur
programmeur



Age : 34
Inscrit le : 23 Juin 2006
Messages : 1812
Localisation : Frasne (25)
diver : papa de 4 enfants , toujours sur les 4 chemins
Loisirs : programmation en tous genres, defendre le libre , linux

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mar 5 Fév - 20:39

Beldjilali a écrit:
j'ai quelques questions parce que je patoge dur là.

la fonction : $ma_valeur=$_REQUEST["snd_swf"];


c'est pour la recuperation ,dans le temps , php deviens strict !!! ceci et facultatif et encore !! suivant les versions de PHP , il peut il avoir des avertissement

Beldjilali a écrit:

on ne s'en sert pas pour récuperer les variables dans le php?

Pourquoi on passe par un php puisqu'on peut utiliser que le xml? à moins qu'il faut passer par une base de donnée mysql ce qui explique le passage par le php.

enfin dans ton code la ligne
phpsnd.sendAndLoad("./requete.php",rec_snd,"POST");
doit être
phpsnd.sendAndLoad("./requete.php",rec_xml,"POST");
je pense.

Merci pour tout ça, c'est dejà une grande avancé

erreur corriger !!!
la 2ieme et bien la bonne !!!
_________________
un petit jeux sympa
L'urgent c'est fait,
L'impossible est en train de se faire,
Un miracle ?? laisse moi au minimun 24H !!!...
L'action script a l'etat pur
Mes meilleurs photos
Revenir en haut Aller en bas
Beldjilali
programmeur
programmeur



Inscrit le : 24 Juin 2007
Messages : 2154

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mar 5 Fév - 21:01

christophe_D a écrit:
Beldjilali a écrit:
j'ai quelques questions parce que je patoge dur là.

la fonction :
Code:
$ma_valeur=$_REQUEST["snd_swf"];



c'est pour la recuperation ,dans le temps , php deviens strict !!! ceci et facultatif et encore !! suivant les versions de PHP , il peut il avoir des avertissement


y'a un truc que je ne comprends pas, à quel moment on inscrit une donnée dans le fichier xml? la base de donnée est bien un fichier xml?

Edit : j'ajoute une autre question :

Et puis pour envoyer une variable vers le php, je mets quoi exactement?
tu nous parles de cette variable :
Code:
phpsnd.snd_swf="v1";

puis quand tu l'intégres dans le code, elle disparait :
Code:
var phpsnd :LoadVars = new LoadVars();
var rec_xml:XML = new XML();
rec_xml.ignoreWhite=true; // important evite les problemes d'espaces

phpsnd.sendAndLoad("./requete.php",rec_xnd,"POST");

_________________


Défoule toi sur mon ami Smile et fais le jongler :

Tu peux aussi jongler ton ami (la photo et l'image de fond de ton choix) ... prochainement sur mon site.
Revenir en haut Aller en bas
christophe_D
programmeur
programmeur



Age : 34
Inscrit le : 23 Juin 2006
Messages : 1812
Localisation : Frasne (25)
diver : papa de 4 enfants , toujours sur les 4 chemins
Loisirs : programmation en tous genres, defendre le libre , linux

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mer 6 Fév - 8:38

Beldjilali a écrit:

y'a un truc que je ne comprends pas, à quel moment on inscrit une donnée dans le fichier xml? la base de donnée est bien un fichier xml?


quand tu traite ton fichier XML
je suis parti dans le cas d'un fichier XML dynamique , mais il pourra etre statique , du coup ca sera une extension XML

par exemple pour un top 10
Code:

<score>
<place position="x" point="XXX" joueur="xxxx"/>
<place position="x" point="XXX" joueur="xxxx"/>
<place position="x" point="XXX" joueur="xxxx"/>
</score>


pour indique par exemple le top 10 , il te faudra une base sql au mieux pour sotcker les scores


Beldjilali a écrit:

Edit : j'ajoute une autre question :

Et puis pour envoyer une variable vers le php, je mets quoi exactement?
tu nous parles de cette variable :
Code:
phpsnd.snd_swf="v1";

puis quand tu l'intégres dans le code, elle disparait :
Code:
var phpsnd :LoadVars = new LoadVars();
var rec_xml:XML = new XML();
rec_xml.ignoreWhite=true; // important evite les problemes d'espaces

phpsnd.sendAndLoad("./requete.php",rec_xnd,"POST");


oublie de ma pars le code exact
Code:
var phpsnd :LoadVars = new LoadVars();
var rec_xml:XML = new XML();
rec_xml.ignoreWhite=true; // important evite les problemes d'espaces
phpsnd.snd_swf="v1";
phpsnd.sendAndLoad("./requete.php",rec_xnd,"POST");


la variable snd_swf pourra etre un score , une pseudo ...
cette ou ces variables serviront de liaison en le swf et le php
_________________
un petit jeux sympa
L'urgent c'est fait,
L'impossible est en train de se faire,
Un miracle ?? laisse moi au minimun 24H !!!...
L'action script a l'etat pur
Mes meilleurs photos
Revenir en haut Aller en bas
the virus
co-administrateur
co-administrateur



Age : 15
Inscrit le : 31 Déc 2005
Messages : 1979

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mer 6 Fév - 19:55

passe moi un exemple plz
c'est pas grave si tu est bizar ^^
_________________
Le chat reviendra mais la il est tro lourd

Si je critique vos créa c'est que je pense que vous pouver fair mieux!!
Revenir en haut Aller en bas
Beldjilali
programmeur
programmeur



Inscrit le : 24 Juin 2007
Messages : 2154

MessageSujet: Re: passage et lecture de variable sans rafraichissement   Mer 6 Fév - 23:12

merci Christophe, je vois ça dans la semaine.. pas le temps en ce moment.

Mais je pense que quand je vais m'y remettre je vais reposter ici (c'est meme sûr vu comment je rame Embarassed )

un petit exemple, style le tchat de virus n'aurais pas été plus mal pour mieux comprendre (reprend son code et adapte le..)
_________________


Défoule toi sur mon ami Smile et fais le jongler :

Tu peux aussi jongler ton ami (la photo et l'image de fond de ton choix) ... prochainement sur mon site.
Revenir en haut Aller en bas
passage et lecture de variable sans rafraichissementVoir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
E-anim :: comment faire,probléme,bug :: Mtasc :: tutoriau-
Poster un nouveau sujet   Répondre au sujet