URLLoader 类和 URLVariables 类

使用 URLLoader 类和 URLVariables

与早期版本 ActionScript 中的 XML LoadVars 类非常相似,URLLoader URL 的数据在下载完成之前不可用。尽管如果文件加载速度太快,可能不会调度 ProgressEvent.PROGRESS事件,但您可以通过侦听要调度的 flash.events.ProgressEvent.PROGRESS事件来监视下载进度(已加载的字节数和总字节数)。成功下载文件后,将调度 flash.events.Event.COMPLETE事件。加载的数据将从 UTF-8 UTF-16 编码被解码为字符串。

注意

 

如果没有为 URLRequest.contentType设置值,则以 application/x-www-form-urlencoded的形式发送值。

URLLoader.load()方法(以及 URLLoader 类的构造函数,可选)使用一个参数,即 request,该参数是一个 URLRequest 实例。URLRequest 实例包含单个 HTTP 请求的所有信息,如目标 URL、请求方法(GETPOST)、附加标头信息以及 MIME 类型(例如,当上载 XML 内容时)。

例如,要将 XML 数据包上载到服务器端脚本,您可以使用下面的 ActionScript 3.0 代码:

 

var secondsUTC:Number = new Date().time;

var dataXML:XML =

<login>

<time>{secondsUTC}</time>

<username>Ernie</username>

<password>guru</password>

</login>;

var request:URLRequest = new URLRequest("http://www.yourdomain.com/login.cfm");

request.contentType = "text/xml";

request.data = dataXML.toXMLString();

request.method = URLRequestMethod.POST;

var loader:URLLoader = new URLLoader();

try

{

loader.load(request);

}

catch (error:ArgumentError)

{

trace("An ArgumentError has occurred.");

}

catch (error:SecurityError)

{

trace("A SecurityError has occurred.");

}



上面的代码片段创建了一个名为 dataXML XML 实例,其中包含要发送到服务器的 XML 数据包。接下来,将 URLRequest contentType属性设置为"text/xml",将 URLRequest data属性设置为 XML 数据包的内容(通过 XML.toXMLString()方法将该内容转换为字符串)。最后,创建一个新的 URLLoader 实例,并使用 URLLoader.load()方法将请求发送到远程脚本。

 可以使用三种方式指定要在 URL 请求中传递的参数:

  • URLVariables 构造函数中
  • URLVariables.decode()方法中
  • 作为 URLVariables 对象本身中的特定属性

当定义 URLVariables 构造函数或 URLVariables.decode()方法中的变量时,需要确保对"and"符进行 URL 编码,因为它具有特殊含义并作为分隔符使用。例如,由于与号作为参数的分隔符使用,当传递与号时,需要将与号从 &更改为 %26来对与号进行 URL 编码。

 

——摘自AS3.0帮助文档

posted @ 2012-04-07 17:00  FlashHK  阅读(420)  评论(0编辑  收藏  举报