AS3常用代码(二):AS3与PHP的交互
说回JS,由于JS属于WEB前端语言,AS3调用JS主要目的是改变页面的一些状态,JS调用AS3也是同理。两者主要配合是在WEB前端的一些操作和即时反馈。
而PHP和JS不同,PHP跟ASP,JSP等等同理,都是属于服务器端语言,AS3和PHP的配合主要体现在数据的交互上,例如上传头像,保存用户注册信息数据库,发送Email等功能……相比和JS的函数互调,AS3与PHP主要更多的是在属性值的传递上。
废话不多说,让我们进入正题:
二,AS3 vs PHP
1,AS3 to PHP
函数:
由于PHP不是实时操作的语言,PHP函数的作用也一般是为了生成动态页面,所以AS3一般不直接调用PHP的函数。
但是仍然有一个例外,就是使用AMFPHP,AMFPHP项目的作用是使AS3输入数据,利用服务器端语言计算得出结果再传回AS3。也就是RPC的应用。许多网页游戏也会使用AMFPHP方法。
属性:
AS3传送数据到PHP一般主要利用URLRequest来进行属性的传递。虽然从函数的名称来看比较迷惑,毕竟怎么看这意思更像是AS3去向PHP请求数据,事实的确如此,PHP向AS3端传送数据也是用的这个函数,这个后面再提。
AS3传送数据的基本模版如下:
var _request:URLRequest=new URLRequest(); //设置PHP地址
_request.method //有GET和POST两种,对应传输的三种数据
_request.data
//data有三种数据形式ByteArray(POST),URLVariable(POST),String(GET)。其实URLVariable和String是POST/GET两种方法都适用,但是我没搞懂另外的怎么用
发送请求,有两种方式如下:
var _urlLoader:URLLoader = new URLLoader();
_urlLoader.load(_request);
或
navigateToURL(_request);
其实殊归同途,都是将URLRequest发送出去而已。
PHP接收有不同方法···这个···就交给PHP人员吧····开开玩笑····不过主要就是直接$a=$_XXX[""];
2,PHP to AS3
PHP传值给AS3主要使用的是URLLoader,正好与AS3传值给PHP相反,那么这么一想还挺顺的··呵呵··
函数:
PHP不直接调用AS3函数
属性:
方法1,PHP输出值对格式:
1,PHP输出,即echo出“a=1&b=2”的形式。2,AS3端使用URLLoader的load方法读取PHP页面地址,在监听COMPLETE函数中,调用URLLoader的data属性,并将该属性传给一个URLVariables对象,直接通过URLVariables.xxx(例如上文中命名的a,b)取得值。
方法2,PHP输出XML格式
1,PHP输出XML格式。2,AS3端使用URLLoader的load方法读取PHP页面地址,在监听COMPLETE函数中,调用URLLoader的data属性,并用该属性生成XML对象,直接通过XML.xxx取得值。
总结:
AS3与PHP有3种数据形式可以传递,但其实只分为两大类,一种是ByteArray的二进制形式,而URLVaribles和String可以说是同一种东西。在一些举例的核心代码中,主要用的是URLVaribles和String来举例子,可以应付一般的数据库保存工作。另外一大应用是图片保存到服务器,或者对带宽,传输效率要求比较高的时候,需要用到ByteArray,多了一步编码和解码的工作,具体的代码就不在这里写了,以后如果有机会谈到这方面话题的时候可以再深入探讨。