`
schy_hqh
  • 浏览: 558086 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

(五)Flex4_使用远程数据

 
阅读更多
使用远程XML数据
1.数据来源:嵌入式数据、远程加载数据
2.以Object形式返回数据的HTTPService对象
3.以XML形式返回数据的HTTPService对象
  使用E4X(ECMAScript for XML)表达式搜索XML数据
  基于动态XML构建XMLListCollection(将需要的数据放到集合中)
6.将获取到的数据在控件(List、ComboBox、Tree)中进行显示
-----------------------------------------------------------
嵌入式数据(适合不需要经常更新的数据,如省份)
    通过source属性将外部文件作为模型的数据来源
    <fx:Model id="groceryInventory" source="assets/inventory.xml"/>
以何种方式使用XML
    1.直接使用XML  <fx:XML> ---E4X
    2.将XML转换为对象,再用对象代理XML <fx:Model>
远程数据(将数据与应用程序分离)
    HTTPService
    HTTPService组件可以让应用程序从给定URL取得数据
    默认情况下数据以对象的形式返回,也可以设置以XML形式返回数据
    使用HTTPService的步骤:
1.创建HTTPService对象(调用send方法之前请求不会开始)
2.调用对象中的send(),必须通过此方法,程序才会向服务器发起数据请求
3.使用数据(当数据成功返回之后,会触发一个Result事件,在该事件中完成数据处理)
    何时向服务器发起请求?
        当应用程序启动时便获取数据,通过Application的creationComplete事件处理函数,在函数中调用send
    如何访问HTTPService返回的数据:
        1.httpServiceID.lastResult属性 可以在应用程序的任何地方使用
2.event.result属性 只能在事件处理函数中使用
数据访问的安全性
    Flash Player安全模型的核心是"沙箱"机制
    Flash Player会把来自不同域的内容放到不同的沙箱中,从一个域加载的内容
不允许访问从另一个域中加载的内容
    跨域访问数据
        通过跨域策略文件来设置访问权限--crossdomain.xml
这个文件要放在包含被访问数据的Web服务器的根目录下!
        内容:
<cross-domain-policy>
<allow-access-from domain="www.xxxsite.com"/>
</cross-domain-policy>
允许所有域的访问
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

XML与XMLList的区别
     XML是具有唯一根标签的
     XMLList则只包含一组有效XML节点,自身没有根节点,不是有效的XML
E4X运算符
     E4X运算的结构都是XMLList类型的数据,即一组有效的XML节点
     这些节点中包含的数据就是我们需要的数据
使用E4X搜索XML文件,找到需要的节点,XML是树形结构的,通常需要获取树的一些分支
     categroy.product
     categroy.product[1]
     categroy.product.(unit=="bag") 过滤器限制返回数据
     categroy.product.(@cost=="1.95") 基于节点的属性进行过滤,需要使用@标记
     categroy.product.(@cost=="1.95").(unit="each")
     categroy..product 后代存取器 descendant accessor 返回所有符合条件的后代
     categroy..product.(@cost>2)

注意:
     XML和Object这两种返回的数据格式只是使用XML的不同方式,各有利弊,都有各自适用的场合!
1.XML结合E4X表达式可以快速搜索和操作XML数据,但是任何一个地方录入错误都将导致程序出错
2.使用强类型的对象可以通过提示避免录入错误

HTTPService默认会在取得数据时返回动态的对象而不是XML
可以修改相应属性返回XML,将返回数据保存到XMLListCollection中
在HTTPService中添加resultFormat属性
   resultFormat="e4x" 这样返回的数据就可以使用E4X运算符来操作XML了
[默认情况下,返回的数据是一个被包装到ObjectProxy实例中的动态代理对象]
返回的数据可以通过event.result.xxx获取到
然后放到一个XMLListCollection中
[Bindable]元标签
  告诉Flex监视某个数据的变化,在发生变化事件时,通知所有使用该数据的对象更新数据并刷新显示

eg:
[Bindable]
private var categries:XMLListCollection;

private function handleCategoryResult(event:ResultEvent):void {
categories = new XMLListCollection(event.result.category);
}

说明:将需要的数据保存到一个XMLCollection中,方便对数据进行操作
---------------------------------------------------------------
在Flex的List控件中显示远程数据
将获取到的数据放大控件中进行显示
通过dataProvider来指定数据源
通过labelField告诉Flex以哪个字段(属性)作为列表项的标签
<s:List dataProvider="{categories}" labelField="name">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
</s:List>









 
分享到:
评论

相关推荐

    EmployeeManager.zip_LCDS Flex_flex_flex LC_flex lcds

    Adobe Flex和LiveCycle Data Services(LCDS)是开发此类应用的两大利器,尤其对于企业级应用,它们的结合提供了强大的数据绑定和远程服务交互能力。本文将以"EmployeeManager.zip_LCDS Flex_flex_flex LC_flex lcds...

    Flex4_httpService

    综上所述,Flex4_httpService项目涵盖了Flex 4与Java Web服务交互的核心技术,包括客户端HTTPService的使用、服务端Java接口的实现以及项目配置和调试等环节。通过深入学习和实践,开发者可以熟练掌握Flex 4与后端...

    FLEX4_flex4教程

    ### FLEX4_flex4教程知识点详解 #### 富互联网应用(RIA)概念与背景 - **RIA定义**: RIA代表“富互联网应用”(Rich Internet Applications),是一种提供类似于桌面应用体验的网络应用形式。 - **RIA背景**: - **C/...

    S32K144_Project_FlexCan_s32k底层开发_S32K144FlexCanCAN_

    2. **CAN帧格式**:熟悉CAN数据帧和远程帧的结构,包括标识符(ID)、数据长度码(DLC)以及数据字段,以及标准ID和扩展ID的区别。 3. **中断处理**:设置中断向量,理解中断请求源,如接收新消息、错误条件等,并...

    FLEX inspire_source_code.zip

    深入研究inspire_source_code,我们还能发现FLEX与后端服务的交互方式,如使用HTTPService或WebService组件进行远程数据调用,实现数据的动态加载和更新。这在构建实时、动态的应用场景时尤为关键。 此外,FLEX支持...

    Flex 入门_2007.rar

    这个"Flex 入门_2007"教程可能会涵盖以上提到的诸多知识点,包括基本的Flex环境设置、组件使用、数据绑定、事件处理、ActionScript编程等,是初学者入门Flex的好材料。通过学习,你可以理解Flex的基本原理,并具备...

    flex3_java 教程

    - **BlazeDS**:介绍Adobe BlazeDS,一种用于Flex和Java之间的远程通信技术。 - **开发方式**:探讨Flex与Java后端服务的几种常见集成方式。 - **工具准备**:列出开发过程中需要的工具和环境配置。 #### 18. Flex+...

    Flex教程_ppt+pdf

    通过 BlazeDS 或 LiveCycle Data Services,Flex应用可以与Java、.NET等服务器端技术无缝集成,实现数据交换和远程方法调用。 六、Flex与移动开发 随着移动设备的普及,Adobe Flex也扩展到了移动应用开发领域。...

    flex_lcds_java.rar_flex

    6. **Java集成**:通过LCDS,Flex可以直接调用Java的远程方法(RPC),使用JavaBeans或EJB作为数据源,或者将Java集合暴露给Flex客户端。 7. **数据推送**:LCDS支持双向通信,允许服务器主动向客户端推送数据,这...

    flex_src.rar_flex_城市联动_应急_应急 系统

    4. **集成服务**:Flex可以与各种后台服务进行集成,如HTTP服务、SOAP服务或AMF服务,这使得应急系统可以与数据库、GIS系统、通讯系统等进行深度整合,实现跨系统的数据交换和功能协同。 5. **富媒体支持**:Flex...

    flex数据交互_方式

    在探讨“flex数据交互方式”这一主题时,我们首先需要理解Flex是什么以及它在数据交互中的角色。Flex是一种用于构建和部署丰富的互联网应用程序(RIA)的开源框架,由Adobe Systems开发并维护。它使用MXML(标记语言...

    Flex_LCDS_Java.rar_flex

    4. **Flex与Java通信**:使用AMF(Action Message Format)协议进行数据交换,创建Flex客户端与Java服务端的连接,展示如何定义和调用远程服务。 5. **数据管理和服务**:讲解如何使用LCDS的LiveCycle Data ...

    Flex与java交互 远程调用方式

    在Flex和Java之间进行远程调用,最常见的技术之一是使用AMF(Action Message Format)。AMF是一种二进制数据格式,能够高效地序列化和反序列化ActionScript对象,使得 Flex与Java之间的数据交换更为快速和高效。...

    MyEclipse_8.0+flex_4_plugin+Blazeds配置

    五、Flex 4与MyEclipse的集成 将Flex 4的安装目录下的`eclipse`目录及`eclipse-host-distro`目录中的`features`和`plugins`文件夹内容复制到MyEclipse安装目录下的`common`文件夹中的相应文件夹内。 六、Blazeds的...

    amfphp.zip_amfphp_flex_flex php

    此外,AMFPHP还支持数据映射,这意味着PHP对象可以直接序列化为AMF格式,供Flex客户端使用,反之亦然。 为了开始使用AMFPHP,你需要将其解压缩并按照官方文档的指示在PHP环境中进行安装。这通常涉及到配置PHP环境,...

    foundation_flex_for_developers

    综上所述,《Foundation Flex for Developers》是一本深入浅出地介绍了如何使用Flex技术栈来构建高质量的数据驱动应用程序的专业书籍。无论是对于初学者还是有经验的开发者来说,都是一本不可多得的参考指南。

    【尝鲜】Flex Builder 4与Java整合开发

    6. **调试和测试**:Flex Builder 4提供了强大的调试工具,可以对ActionScript代码进行断点调试,同时也支持远程调试Java服务。此外,使用JUnit等测试框架,可以在Java端进行单元测试,确保业务逻辑的正确性。 7. *...

    Adobe_Flex_2.0.1_Language_Reference

    Flex提供了对HTTP、Socket和XMLSocket协议的支持,允许应用程序访问远程数据和服务。文档涵盖了关于网络请求、响应和数据传输的所有细节。 **图形和动画** Flex SDK包含一套强大的图形和动画工具,如绘图API和...

Global site tag (gtag.js) - Google Analytics