网上的flex文章越来越多了,但是都使一些关于DB、控件、httpservice之类的文章,其实flex以xml作为数据源来进行操作,也是比较重要的。
正好前一阵子在研究E4X与Flex的关系,所以打算总结一下,有说的不对的地方,还请大家多多原谅。
一、最简单模式:Flex通过httpservice和dataProvider进行数据传输
Xml格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Result>
<NodeA>value1</NodeA>
<NodeB>valve2</NodeB>
……………………………………………
……………………………………………
</Result>
在Flex中有一个DataGrid,这样就可以用httpservice来使DataGrid获取xml的数据了。
Flex端如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
title="Blog Details">
<mx:HTTPService showBusyCursor="true" url="http://localhost:8080/text.xml"/ id=”xmlRecord”>
<mx:DataGrid width="712" height="338" dataProvider="{xmlRecord.lastResult.Result}">
<mx:columns>
<mx:DataGridColumn headerText="SectionA" dataField=" NodeA" width="400" />
<mx:DataGridColumn headerText="SectionB" dataField=" NodeB" width="30"/>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
</mx:columns>
</mx:DataGrid>
</mx:TitleWindow>
※ 其中红字部分必须一致,由于这个sample比较简单,所以Kenshin就不深入研究了。
※ 蓝字部分一定要按照xml的结构书写。
这样在run 这个Flex的时候,在DataGrid中就会显示NodeA&NodeB的内容即value1&value2
二、稍微复杂一些模式
Xml端代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>value1</title>
<link>http://www.k-zone.cn/zblog</link>
<description>关注Flex,Java,DotNet,Web Desgin</description>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
</channel>
</rss>
Flex端如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="feedRequest.send()" >
<mx:HTTPService
id="feedRequest"
url=" http://localhost:8080/text.xml"
useProxy="false" />
<mx:Panel x="10" y="10" width="475" height="400" layout="absolute"
title="{feedRequest.lastResult.rss.channel.title}">
</mx:Panel>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
</mx:Application>
如果想要得到上面的xml中title的值,只需按照蓝字部分书写即可得到Title的value。
以此类推如果想要得到xml中link的内容,应该按如下书写
feedRequest.lastResult.rss.channel.link
三、复杂一些的模式,即xml的格式比较特殊
Xml端代码如下:
<?xml version="1.0" encoding="utf-8"?>
<Result>
<SectionA SubSectionA1=”value1” SubSectionA2=”value2”/>
<SectionB SubSectionB1=”value3” SubSectionB2=”value4”/>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
</Result>
如果大家想要得到SubSectionA1的内容,就显得无从下手了。其实用E4X在actionscript3中已经支持的非常完美了。并且Flex builder2提供的help也有这样的例子。但是我找了一下,没有这样的例子,所以自己研究了一下。并且把结果告诉大家。
要显示SubSectionA1的内容。Flex端如下书写:
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("data/sampleData.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
}
public function onComplete(event:Event):void {
var externalXML:XML;
var loader:URLLoader = URLLoader(event.target);
externalXML = new XML(loader.data);
trace(externalXML. SectionA [0].@ SubSectionA1);
}
其中红字部分就是SubSectionA1的内容了。其中externalXML. SectionA [0].@ SubSectionA1中的[0]是xml的record的条数。@后面的就是想要得到的子节点的值。其内容可以是SubSectionA2、SubSectionB等等的值。
关于xml的格式在继续引伸一下。以下的格式
<?xml version="1.0" encoding="utf-8"?>
<Result>
<SectionA SubSectionA1=”value1”/>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
</Result>
相当于如下的格式:
<?xml version="1.0" encoding="utf-8"?>
<Result>
<SectionA>
<SubSectionA1>value1”</ SubSectionA1>
</SectionA>
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
</Result>
以上就是我关于XML和Flex进行通讯的一些想法,尤其是第三种格式,尤其重要。
分享到:
相关推荐
Flex和Java之间的通信是Web应用程序开发中的一个重要环节,它允许前端用户界面(UI)与后端服务器进行数据交互。Flex是一种基于Adobe Flash Player或Adobe AIR运行时的富互联网应用程序(RIA)开发框架,而Java则是...
在Flex开发中,XML是一种常见的数据传输格式,特别是在与服务器进行数据交互时。本文将深入探讨如何使用Flex解析XML框架,结合HTTPService组件,实现从服务器接收并解析XML数据的实例。 首先,让我们理解Flex中的...
### Flex与Java实现通信——使用BlazeDS技术详解 #### 一、引言 随着互联网技术的不断发展,前端与后端之间的数据交换变得越来越频繁。Adobe Flex作为一种强大的RIA(Rich Internet Applications)技术,广泛应用...
3. **互操作性**:Flex与JSON、XML之间的数据交换和处理能力,使得Flex能够灵活地与不同后端服务进行通信。 #### 深入理解Flex与JSON及XML的互操作 Flex的应用开发中,与JSON和XML的互操作是实现动态数据加载和...
总的来说,Flash Flex与JavaScript通信是Web开发中一个复杂且有趣的主题,它涉及到多种技术和策略,而crossdomain.xml则是保证安全通信的重要环节。了解和掌握这些知识,可以帮助开发者创建更具互动性和功能性的Web...
Flex与Java通信是Web开发中的一个重要技术组合,它允许用户在浏览器端利用Flash的富互联网应用(RIA)特性,通过ActionScript与服务器端的Java应用程序进行数据交互。本压缩包包含了一个完整的Flex与Java通信的示例...
HTTPService是Flex的网络服务组件,用于与Web服务器进行HTTP通信,包括GET和POST请求。在解析XML文件时,我们通常会使用HTTPService来从服务器获取XML数据。配置HTTPService时,需要设置URL(指向XML文件的位置)和...
- Flex可以通过`mx.rpc.http.HTTPService`或`mx.rpc.http.mxml.HTTPService`组件与HttpServer通信,发送GET或POST请求获取XML数据。 - 示例代码: ```actionscript var service:HTTPService = new HTTPService()...
总结起来,实现Flex与Java通信涉及多个步骤,包括配置BlazeDS、设置XML文件、处理部署问题、满足Flex类的要求以及处理安全策略。理解并掌握这些知识点对于开发Flex和Java结合的应用程序至关重要。
在本文中,我们将探讨如何将Adobe Flex与Java JSP相结合,利用HTTPService进行XML通信。这个过程涉及多个步骤,包括项目设置、库的添加以及配置文件的调整。 首先,我们需要创建一个新的Web项目,选择J2EE 1.4标准...
本文将深入探讨Flex与各种开发语言之间的通信机制,帮助开发者更好地理解和利用这种强大的技术。 一、Flex与Java的通信:Flex与Java之间的通信主要依赖于AMF(Action Message Format)协议。AMF是一种二进制格式,...
在本文中,我们将探讨如何将FLEX(Flash Flex)与JSP(JavaServer Pages)结合,以及如何利用HTTPService和XML进行通信。这个过程涉及到多个步骤,包括项目设置、库的集成以及配置文件的调整。 首先,我们需要创建...