使用PHP解码amf3对象

时间:2010-04-13 09:21:31

标签: php flash actionscript-3 amf

我的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扩展但无法使其工作。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我为我的项目FlashMOG在PHP中编写了一个简单的AMF3 Serializer / Deserialize: here

需要一些调整。

答案 2 :(得分:0)

您是否看过AMFPHP:http://www.amfphp.org/

“AMFPHP是Action Message Format(AMF)的免费开源PHP实现.AMF允许将Action Script(AS2,AS3)本机类型和对象的二进制序列化发送到服务器端服务.AMFPHP受到挑战实施整个AMF协议,以替代Flex数据服务(AMF3)和Flash Remoting(AMF0)“

答案 3 :(得分:-1)

看看AMFPHP项目,我在聊天项目中使用它,它非常简单易用。