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
Générateur de présentation (jaquette, fiche) AS3 [ par paradox669 ]
Bonjour à tous, Je viens à vous pour vous présenter un projet que j'ai en tête depuis un moment, c'est un générateur de présentation en flash AS3. Le
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
|
Derniers Blogs
CONF'SHAREPOINT : 10 BONNES RAISONS POUR NE PAS LA RATERCONF'SHAREPOINT : 10 BONNES RAISONS POUR NE PAS LA RATER par pierre
Si vous hésitez encore à venir à la conférence, ci-après 10 bonnes raisons pour ne pas rater cet évènement unique : La Conf'SharePoint, c'est la 1ère conférence en France et en Français dédié à SharePoint : pas de barrière de la langue La Conf...
Cliquez pour lire la suite de l'article par pierre [EVENT] SOIRéE DE LANCEMENT AGILE .NET FRANCE à LYON[EVENT] SOIRéE DE LANCEMENT AGILE .NET FRANCE à LYON par thavo
Agile.Net France débarque à Lyon fin juin !! Je viens d'arriver à Lyon, et l'Agile .Net France aussi. Pour ceux/celles qui habitent en Rhône-Alpes, seriez-vous disponible pour une soirée « Agile .Net France » ?? (je sais que certains vi...
Cliquez pour lire la suite de l'article par thavo SHAREPOINT : INCOMPATIBILITé AVEC INTERNET EXPLORER 10 (IE10)SHAREPOINT : INCOMPATIBILITé AVEC INTERNET EXPLORER 10 (IE10) par ROMELARD Fabrice
Depuis plusieurs mois, Microsoft a publié un patch (comme très régulièrement) qui est passé relativement inaperçu à l'époque. L'arrivée de plus en plus de postes sous Windows 8 et surtout le déploiement par Windows Update de ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice AUTOSPINSTALLER POUR SHAREPOINT 2013 MAINTENANT DISPONIBLE EN "RTM"AUTOSPINSTALLER POUR SHAREPOINT 2013 MAINTENANT DISPONIBLE EN "RTM" par neodante
Alors qu'il n'était qu'en Beta et que quelques dysfonctionnements persistaient, la nouvelle version du fabuleux script AutoSPInstaller permettant d'installer SharePoint 2010/2013 en full script (idéal pour répliquer des fermes de dev/qual/prod) est mainte...
Cliquez pour lire la suite de l'article par neodante
Logiciels
Devis-Factures PHMSD (2.1.0.1)DEVIS-FACTURES PHMSD (2.1.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD Ludoprêt (3.2)LUDOPRêT (3.2)Logiciel gratuit de gestion de ludothèque.
Gestion des jeux et des adhérents.
Gestion des for... Cliquez pour télécharger Ludoprêt Revealer Keylogger Free (2.05)REVEALER KEYLOGGER FREE (2.05)Keylogger invisible et gratuit pour Windows 8, 7, Vista ou XP. Revealer Keylogger Free vous perme... Cliquez pour télécharger Revealer Keylogger Free 974 Application Server (13.2.1.3)974 APPLICATION SERVER (13.2.1.3)Ecommerce, Blogueur, Vitrine, Newsletter, Java IDE, ..., in the cloud et sous haute dispo. Facile... Cliquez pour télécharger 974 Application Server WDmemoCode (1.0.0)WDMEMOCODE (1.0.0)WDmemoCode a été créé pour aider les développeurs Windev à créer/compléter et conserver une base ... Cliquez pour télécharger WDmemoCode
|