2010-04-13 7 views
2

Mon code flash:Decode objet AMF3 en utilisant PHP

var request=new URLRequest('http://localhost/test.php'); 
request.method = URLRequestMethod.POST; 
var data = new URLVariables(); 
var bytes:ByteArray = new ByteArray(); 
bytes.objectEncoding = ObjectEncoding.AMF3; 
//write an object into the bytearray 
bytes.writeObject( 
     { myString:"Hello World"} 
); 
data.data = bytes; 
request.data = data; 

var urlLoader:URLLoader = new URLLoader(); 
urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
urlLoader.addEventListener(Event.COMPLETE, onCompleteHandler); 
urlLoader.load(request); 

function onCompleteHandler(evt:Event):void { 
trace(evt.target.data); 
} 

Code PHP:

define("AMF_AMF3",1); 
$data = $_POST['data']; 
echo amf_decode($data, AMF_AMF3); 

Fondamentalement, je besoin d'envoyer un objet AMF3 de Flash à PHP et désérialisable. J'utilise l'extension AMFEXT mais je n'arrive pas à l'obtenir. Une idée?

+1

* (sidenote) * La bibliothèque officiellement supportée est Zend_AMF est http://framework.zend.com/manual/fr/zend.amf.introduction.html – Gordon

+0

Étant donné les performances de amfext je voudrais explorer cette option = – jasondinh

Répondre

0

Avez-vous eu un coup d'œil à AMFPHP: http://www.amfphp.org/

« AMFPHP est une implémentation libre de PHP open-source du message d'action Format (AMF) AMF permet de sérialisation binaire de script d'action (AS2, AS3) natif. types et objets à envoyer aux services côté serveur AMFPHP est contesté avec la mise en œuvre l'ensemble du protocole AMF d'être une alternative à Flex Data services (AMF3) et flash Remoting (de AMF0) »

+0

Oui Je suis au courant de AMFPHP mais je n'ai pas besoin de la fonction à distance de celui-ci. J'ai juste besoin d'un moyen d'encoder/décoder les données AMF3 en PHP .. – jasondinh

1

J'ai écrit un simple Serializer/Deserialize AMF3 en PHP pour mon projet FlashMOG: here

Il faudrait un peu d'adaptation.

-1

jetez un oeil au projet AMFPHP, je l'ai utilisé sur un projet de chat et il est vraiment simple à utiliser et efficace.