as学习笔记(十二)--as3与服务器交换数据
sshong 发表于2007年5月29日 17:09:00 更新于2007年5月29日 17:09:00
as2种,大家都熟悉的loadvars在as3种被淘汰了,取而代之的是正统的URLLoader.
与urlloader相关的类有一大摞,让我们从流程上来理解下。
首先要与服务器交换数据,必须要发送数据到服务器,然后服务器接收数据,最后服务器返回数据。

一、准备发送数据 利用URLRequest来定义如何连接,链接到哪里,传递些什么数据。

A.首先要知道服务器地址以及访问的页面,这些都通过urlrequest的url属性来定义。
譬如
var url:String="http://sshong.8866.org/chatroom.jsp";
var req:URLRequest=new URLRequest(url);
或者
var req:URLRequest=new URLRequest();
req.url="http://sshong.8866.org/chatroom.jsp";

B.要知道传递数据的方法是get还是post
于是我们在URLRequest的一个属性叫method的属性来定义。而为了防止我们把post和get输错,as3专门定义了一个类URLRequestMethod,这个类中有两个静态常量(static const)GET、POST分别代表get、post(这种定义静态常量防止用户输错的方法as3中很多)。

req.method=URLRequestMethod.POST;

C.要传递些什么数据给服务器呢?也就是服务器接收些什么变量呢?通过URLRequest.data属性来定义
as3中专门定义了一个URLVariables类,在这个类俄实例中中直接定义属性,然后将整个实例赋值给URLRequest的data属性!
var sendVars:URLVariables=new URLVariables();
sendVars.user="sshong";
req.data=sendVars;

到此,我们要传递给服务器的东西已经准备好了,那用什么传,用什么接收呢?这就是URLLoader类了。

二、传递数据:URLLoader有一个load方法,用以将准备好的数据传递给服务器。

var loader:URLLoader=new URLLoader();
loader.load(req);
同时,我们要决定如何事先决定好如何对待服务器返回的数据,是当作变量还是二进制还是text?所以在load前要定义,URLLoader有一个属性叫dataFormat,as3专门定义了一个类URLLoaderDataFormat来定义接收回来的数据的属性,该类有三个静态常量TEXT、BINARY、VARIABLES。

loader.dataFormat=URLLoaderDataFormat.VARIABLES

三、接收返回数据:URLLoader可以侦听各种流程事件,如complete等。URLLoader接收好数据后,就可以利用URLLoader的data属性来得到接收到的数据,这是英文原文:
If the dataFormat property is URLLoaderDataFormat.TEXT, the received data is a string containing the text of the loaded file.

If the dataFormat property is URLLoaderDataFormat.BINARY, the received data is a ByteArray object containing the raw binary data.

If the dataFormat property is URLLoaderDataFormat.VARIABLES, the received data is a URLVariables object containing the URL-encoded variables.
标签:无分类:As3&Flex阅读:2712
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅