Accueil > > > TRANSFERT DE DONNÉES FLASH <-> PHP - PETITE SUBTILITÉ AVEC JSON (AS3 - PHP5)
TRANSFERT DE DONNÉES FLASH <-> PHP - PETITE SUBTILITÉ AVEC JSON (AS3 - PHP5)
Information sur la source
Description
Problématique : Imaginons que nous ayons une quantité d'information dans un shareobject et que nous désirions les stocker en dur de façon rapide pour les recharger plus tard, tout aussi rapidement. Par exemple un backup en dur. La méthode simple traditionnelle serait de mettre en forme les données dans flash par une sérialisation, puis d'envoyer les données à PHP et faire le décodage puis soit d'envoyer dans une base de données soit dans un XML (puisque nous désirons les relire par la suite). Ma solution novatrice est d'envoyer directement le shareobject après mise en forme JSON et à réception, de l'écrire tel quel directement en dur. L'opération inverser vise simplement à charger depuis flash ce fichier et de procéder au décodage. Ainsi nous gagnons un temps fou en procédure.
Source
- //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));
-
- ?>
//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));
?>
Conclusion
Nous utilisons JSON pour écrire les données en dur par le biais de PHP puis nous récupérons les données directement depuis flash en chargeant le fichier directement. Cette petite subtilité permet de gagner du temps pour enregistrer une grande quantité de données sans passer par un recodage de type xml depuis PHP. Bref c'est un façon différente de l'utiliser. Personnellement je m'en sert pour figer les données issues d'une transaction bancaire en vue d'une création de facture PDF décalée dans le temps.(bons de commande). Ceci parsk la transaction est effectuée depuis un serveur bancaire et que pour un nombre important d'acheteur, je ne voulais pas créer un table de données pour chacun d'eux.
Soyez indulgent pour ce bout de code écrit en copier-coller depuis mon développement en cours. Mes excuses pour ceux qui pensaient utiliser ce code directement, il faudra une légère adaptation mais c'est pleinement fonctionnel.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
AS3 une inscription mailing-liste, un php, comment s'en sortir? [ par azetaz ]
Bonjour à tous,Je commence à désespérer mais bon, il faut pas!Vous pouvez visualiser mes codes iciVoila mon problème:Je souhaite faire
php et flash 9 en AS3 [ par tranber78 ]
Ben voilà j'aimerai avoir un script pour faire dialoguer flash et php en AS3 pour des chargement dynamique de vidéos, de sons, d'images, etc...Merci à
flash as3 / php / xml [ par projer ]
Bonjour, j'aurai besoin de récupérer sur un serveur un xml (facile jusque là) pour pouvoir mettre à jour le contenu d'un site. Mais mes connaissances
Récupérer des variables en AS3 vers PHP [ par WavePlus ]
Bonjour à tous, C'est mon premier topic sur ce forum et j'espère que vous allez m'apporter l'aide dont j'ai besoins. Voilà, j'ai créer un formulaire q
Aide formulaire contact AS3+PHP [ par riraito ]
Bonjour! Ayant besoin d'un formulaire de contact à intégrer dans mon site en full flash, j'ai écumer google des heures entières à trouver un tuto pou
Mysql et AS3 [ par WCube ]
Bonjour tout le monde et désolé de vous déranger :) Je suis débutant en AS3 et je commence à me débrouiller en AS2 mais voilà, j'ai un souci vis à vi
Tutorial clair sur les liaison PHP/MYSQL/AS3 [ par AcarnanDragoon ]
Bonjour à tous, Je sais que vous allez me dire que je peux demander au meilleur amis du développeur "GOOGLE" mais voila je n'es pas trouvé quelques c
[AS3 / PHP] Exporter une variable ... [ par vedelvetsyn ]
Mon problème est simple a expliquer. J'ai des variables issues d'un formulaire Flash, et je veux les exporter sur ma page PHP ... J'ai tenté d'appli
[AS3] Tracé de droites [ par Wazaah ]
Bonjour ! Je travaille en ce moment sur un logiciel qui utilise quelques outils de dessins simples. Dans ces outils, un outil de tracé de droites ent
[AS3] Hauteur de caractere [ par vedelvetsyn ]
Bonjour, J'ai un petit problème concernant la gestion d'une police importée comme ceci : [code=as] var maPolice:policeplaques = new policeplaques();
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|