`
schy_hqh
  • 浏览: 543119 次
  • 性别: 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>









 
分享到:
评论

相关推荐

    使用 Flex 4.5 访问数据

    使用 ADOBE FLEX 45访问数据 目录 第 1 章: 访问数据服务概述 Flex 与其它数据访问技术的比较 使用 Flash Builder 访问数据服务 数据访问组件 第 2 章: 使用 Flash Builder 构建以数据为中心的应用程序 创建 Flex...

    Flex4权威指南+随书源代码+Flexbuild使用工具

    6. 使用远程XML数据 7. 创建类 8. 使用数据绑定和集合 9. 将应用程序拆分成组件 10. 使用DataGroup和List 11. 创建和分派事件 12. 使用DataGrid与项目呈现器 13. 使用拖放 14. 实现导航 15. 使用格式化器和验证器 16...

    flex与java远程传值demo

    一个java web项目模块,一个flex项目模块,web项目发布到tomcat,flex通过BlazeDS远程服务来调用java服务提供的方法,实现了flex前端与java后台服务的数据交互。

    Flex4权威指南(清晰pdf中文版)

    FLEX 4权威指南(带实例代码) 1.理解AIR 2.flex4开发 3.布置界面 4.使用简单控件 5.处理事件 6.使用远程xml 7.创建类 8.使用数据和绑定集合 9.将应用程序拆分成组件 10.使用DataGroup 和 List 11.创建和分派事件 。。...

    flex通过httpService读取xml数据到datagird中

    flex通过httpService读取xml数据到datagird中,通过读取远程URL的XML数据(这里保存到本地),保存到ArrayCollection中,然后在将ArrayCollection绑定到datagird上 环境:flex3.0 可直接运行

    flex 加载远程数据的一个as3类

    LoadRemoteData类是我再使用过程中加载远程对象的一个as3, 实现了远程获取mysql数据库的功能, 中间使用amfphp进行通信,后台使用php连接mysql数据库, 代码可以完整实现登录,获取后台数据的功能,如果需要加密数据传输,...

    FLex连接数据

    而是使用以您的首选网络语言(PHP、ColdFusion、Java 或任何其他服务器端网络技术)编写的数据服务连接到远程数据。 本教程说明了如何创建一种数据服务,它使用 Flash Remoting 调用 PHP 类、ColdFusion 组件或 Java...

    Flex4访问数据库文档

    远程服务仅返回数据,随后 Flex 会将所返 的数据绑定到客户端应用程序中的用户界面组件。 例如,在 Flex 中,当用户在应用程序中单击 Button 控件时,客户端代码会调用 Web 服务。从 Web 服务中获得的结果数据 将...

    Flex-超级学习资料集锦

    精品之作,两本书都: 按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程数据的...

    Flex + Hessian 留言本

    主要是将《Flex第一步》里使用FDS数据传输改为使用Hessian来实现,一些地方做了些简单的修改。 关于Flex使用Hessian进行远程调用,请参考: Flex + Hessian 学习笔记(一) ...

    论文研究-基于FPGA与Flex的远程虚拟示波器的研究 .pdf

    基于FPGA与Flex的远程虚拟示波器的研究,郝璨,黄建明,为了满足虚拟实验系统的建设需要,应用富客户端(RIA)成熟技术之一Flex技术设计虚拟仪器,改进了虚拟仪器开发方法和远程数据交互��

    《Flex3权威指南》涉及 源代码

    书中详细介绍了Flex 3的相关知识点,具体包括构建、部署和调试RIA,使用功能强大的MXML语言布置应用程序,使用MXML和ActionScript构建自定义的UI组件,使用XML、基于SOAP的Web服务和远程调用协议AMF连接到数据等。...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    不过,针对 Java EE 开发的服务器端应用,可以通过集成 BlazeDS,充分利用 AMF 协议并能轻易与 Flex 前端交换数据,这种方式是 Java EE 应用程序集成 Flex 的首选。 BlazeDS 是 Adobe LifeCycle Data Services 的...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    不过,针对 Java EE 开发的服务器端应用,可以通过集成 BlazeDS,充分利用 AMF 协议并能轻易与 Flex 前端交换数据,这种方式是 Java EE 应用程序集成 Flex 的首选。 BlazeDS 是 Adobe LifeCycle Data Services 的...

    Flex从入门到精通

    按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程数据的控制、Flex图表及...

    Flex从入门到精通[源文件]

    Flex从入门到精通按照Flex技术点,由浅入深、循序渐进地对Flex的开发工具、基本语法、基本的容器和控件的语法及使用、高级编程、自定义的各类组件、页面的风格和主题、Flex与HTML的通信、共享对象、远程数据的控制、...

    Flex企业应用开发实战源代码

    再接着详细讲解了BlazeDS框架的使用方法和工作原理,并通过迭代的方式完整地演示一个真实的Flex企业级应用的开发全过程,实战性极强;最后重点探讨Flex应用性能优化等方面的高级知识。值得一提的是,本书公开了作者...

    flex与.net通信的FluorineFx模板

    FluorineFX是一个开源库,提供了一种在.NET framework下对Flex/Flash的远程过程调用,Flex数据服务和实时数据的使用技术。

    构建全栈式Flex、BlazeDS和Spring集成解决方案

    JBoss作为应用服务器、MySQL作为数据存储、Hibernate完成数据访问、Spring用来构建业务层、BlazeDS作为远程服务、 Flex用来构建富客户端,使用Maven及flex-compiler-mojo插件进行项目构建,打造全栈式Flex、BlazeDS...

    flex 小节.rar

    如远程对象的配置, flex 默认右键 菜单的屏蔽, datagrid 的渲染器, 编辑器。 tip 提示的重写。 Menu 的默认样式改写, 比如把分割线变细,flex 组件的生命周期,flex皮肤样式,动态图片的加载, 文件的上传于下载...

Global site tag (gtag.js) - Google Analytics