Мой flash-код:
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); }
PHP-код:
define("AMF_AMF3",1); $data = $_POST['data']; echo amf_decode($data, AMF_AMF3);
В основном мне нужно отправить объект AMF3 из Flash в PHP и неэриализовать его. Я использую расширение AMFEXT, но не могу заставить его работать. Есть идеи?
Вы посмотрели AMFPHP: http://www.amfphp.org/
«AMFPHP – это бесплатная PHP-версия с открытым исходным кодом для формата сообщений о действиях (AMF). AMF позволяет выполнять двоичную сериализацию родных типов и объектов Action Script (AS2, AS3) на серверные службы. AMFPHP ставится под вопрос с внедрением весь протокол AMF является альтернативой службам данных Flex (AMF3) и Flash Remoting (AMF0) "
Вы можете попробовать это: http://sourceforge.net/projects/php-amf3/
Я написал простой AMF3 Serializer / Deserialize в PHP для моего проекта FlashMOG: здесь
Это потребует некоторой адаптации.
просто взгляните на проект AMFPHP, я использовал его в проекте чата, и он очень прост в использовании и эффективен.