URLRequest:
构建一个通信请求,请求对象(URLRequest)必须含有足够的信息:
- 请求的URL地址:对应URLRequest对象的 url 属性。
- 请求的方式:对应method属性,默认是GET方式。此外还有POST方式,两种方式可选,使用URLRequsetsMethod.GET和URLRequsetsMethod.POST常量赋值。
- 提交的数据:如果是纯粹的加载行为,那么不需要data属性,如果是要提交一部分数据,那么就要放在data属性中。
URLVariables类:
URLVariables类对象可以作为URLRequest对象的data属性值,用来在flash应用程序及服务器之间传送变量:
var variables:URLVariables = new URLVariables("name=foo&age=28&sex=male");
var request:URLRequest = new URLRequest();
request.url = "someURL";
request.method = URLRequestMethod.GET;
request.data = variables; //variables作为data属性值用来向服务器提交
如果是提交XML,则可以不需要URLVariables对象,代码示例如下:
var xml:XML =
<login>
<username>username</username>
<password>password</password>
</login>;
var request:URLRequest = new URLRequest();
request.url = "someURL";
request.contentType = "text/xml"; //POST数据的MIME内容类型
request.data = xml.toXMLString(); //将xml转成文本赋给data属性
request.method = URLRequestMethod.POST;
URLLoader
不论是纯粹的读取外部数据,还是要提交一些数据并读取返回信息,都要先发出数据请求,发出请求的操作有URLLoader对象完成。如有有数据返回,那么将放在URLLoader对象的data属性中。
URLLoader对象的dataFormat属性可以用来判断data属性中存储的数据格式是文本型(URLLoaderDataFormat.TEXT)的、二进制型(URLLoaderDataFormat.BINARY)的还是变量名值对型(URLLoaderDataFormat.VARIABLES)的。
URLLoader对象还会派发6种事件,用来监听与控制加载流程:
- Event.OPEN事件:load()方法被调用时派发。
- ProgressEvent.PROGRESS事件:加载过程中持续派发,包含下载字节数信息。
- Event.COMPLETE事件:加载完成时派发。
- HTTPStatusEvent.HTTP_STATUS事件:加载完成或失败之前派发。
- IOErrorEvent.IO_ERROR事件:加载失败时派发
- SecurityErrorEvent.SECURITY_ERROR事件:加载内容不符合安全规则。
注:以上所列代码示例源于《ActionScript 3 殿堂之路》