1/5 (16 avis)
Snippet vu 6 991 fois - Téléchargée 18 fois
//Conditions de départ : //Importer la bibilio JSON ici http://code.google.com/p/as3-rpclib/ // Envoie de données depuis flash vers PHP import flash.net.URLLoaderDataFormat; import flash.net.SharedObject; import com.adobe.serialization.json.JSON; //on créé un shareobjet et on l'enregistre var glo : SharedObject; glo.data.prenom = "Bill"; lo.data.nom = "Boquet"; glo.flush(); // on créé un tableau et on push le shareobject var DATAS_GLB:Array = new Array(); DATAS_GLB.push(glo.data); var url:String = "http://..../write_glob.php" var request:URLRequest = new URLRequest(url); request.method = URLRequestMethod.POST; var requestVars:URLVariables = new URLVariables(); // on sérialise les données au format JSON requestVars.jsons = JSON.encode(DATAS_GLB); request.data = requestVars; // on envoie et c'est tout ! var loader:URLLoader = new URLLoader(); loader.load(request); trace(requestVars.jsons); //-------------------------------------------------------- // récupération de données directement depuis flash var loader:URLLoader = new URLLoader(); loader.load(new URLRequest("http://localhost/..../data.jso")); loader.addEventListener(Event.COMPLETE, onComplete_handler); public function onComplete_handler(event:Event){ var datas :Object = new Object(); datas = JSON.decode(event.target.data); //trace("=> "+event.target.data); // dump tracé //trace("=> "+datas[0].nom); //trace("=> "+datas[0].prenom) //trace("=> "+datas[1].prenom); /:si on envoie par exemple 2 fiches // ici c'est pour lister les nom de variables automatiquement for (var vars:String in datas[0]){ trace(vars); with(glo.data){ vars = datas[0].vars; //On assigne le nom de la valeur à sa valeur //glo.data.prenom = "Bill"; //glo.data.nom = "Boquet"; } }//for glo.flush(); // on écrit les données } //partie PHP hyper simple : (write_glo.php) <?php $jsons = $_REQUEST['jsons']; file_put_contents('../.../data.jso', stripslashes($jsons)); ?>
27 févr. 2012 à 20:14
Merci beaucoup
Laurent
27 févr. 2012 à 21:20
J'utilise cette façon de faire pour stocker une quantité de données en backup en dur.
28 févr. 2012 à 19:53
Pourquoi ne pas envoyer directement tes données en XML ?
Peg'
29 févr. 2012 à 05:00
effectivement j'utilise une classe déjà et sur la quantité de données je gagne plus de temps machine à sérialiser les données en JSON et d'envoyer à PHP qui va écrire en dur le contenu pour un prochain décodage en AS3, que de coder et décoder en XML. Effectivement pour peut de données ça n'a pas d'interret.
Pour tout te dire, j'ai eu besoin de cette fonction pour récupérer des données envoyée par flash à l'occasion d'un paiement en ligne. Comme le système de paiement est en https et géré par la banque, j'étais limité en taille de données à passer dans leurs variables. Avec cette méthode, je récupère les données à l'issue du paiement sans pertes et sans limite (256 niveaux maintenant) Sauf que pour ce cas de figure j'encode et écris les données depuis PHP (ce qui est un peut la meme chose).
Conclusion, gain de temps énorme, peut de ligne de codes et fiabilité puisque le fichier en dur est strictement conforme à la sérialisation JSON sans parler de la sécurité des données confidentielles !
Voilà, tu sais tout :-)
21 mars 2012 à 23:09
Pourquoi gardes-tu le SharedObject dans un tableau vu que tu n'énumères que que le premier élément de ce tablau ?
Moi j'ai juste l'impression que c'est plein de bon sentiments, mais la réalisation et l'utitilisation laisse à désirer....
Tu pourrais trés bien créer une classe, passer le nom du futur fichier à PHP, etc. etc...
Ca laisse à désirer, je mettrais seulement 6. C'est bien mieux que la moyenne des dernères sources mais c'est pas génial quand même.
Bonnce change et voir si tu améliores tout ca...
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.