使用E4X实现AS3与服务器通信

我以前写过一篇文章:使用XML实现Flash与服务器通信。该实例适用于AS2,在AS3中,XML类功能已经替换为基于E4X的XML、XMLList、QName 和 Namespace类。本文将以一个实例着重讲述如何使用E4X 来处理XML 数据。

1.将用户输入的内容动态绑定到XML对象,然后通过URLRequest对象将该对象发送到服务器端。在E4X中,可以使用大括号运算{}在构造XML对象时按引用(从其它变量)传递数据,也可以使用insertChildBefore()方法或insertChildAfter()方法在指定 属性之前或之后添加属性,或者直接使用 = 运算符将属性赋予XML 对象。注意:request的contentType属性,即POST数据的MIME 内容类型为text/xml;request的data属性,即包含将随URL 请求一起传输的数据指定为动态绑定的XML对象。

2. 在服务器端,加载发送的XML包,取得其属性值并将其作为SQL查询语句的筛选条件,最后将生成的XML文件打印出来。

3. 使用URLLoader类从URL加载XML数据,AS2中使用XML对象的是sendAndLoad或Load方法。

4. XML数据加载完毕后,接着将其解析成DataGrid可支持的Array数据源类型。在AS3中,我们可以使用点(.)运算符和后代存取器(..)运算符 可以访问XML对象的子属性,这样解析XML就方便多了。

说明:另外我们还可以使用括号运算符过滤具有特定元素名称或属性值的元素。也就是说,可以先在服务器端生成XML文件,然后再在Flex端过滤 查询记录。不过因为未过滤生成的XML文件相比之下很大,第一次请求会很慢。

点击此处查看最终效果,点击此处下载源文件。后台脚本和数据库见http://www.riafan.com/flash-exchangedata-with-xml中的附件。

发表评论