数据传输与交互.ppt
第21章 数据传输与交互,数据具有流动性,数据传输是指根据用户控制传递至指定目的地。数据交互是指Flex与其他程序进行数据交换,包括传递数据给其他程序和接收其他程序返回的数据。,21.1 数据传输的方式,Flex 4.0中的数据传输方式包括内部数据传输、文件流方式传输、XML方式传输、其他方式传输。应用程序内部的数据传输大多通过变量传递来实现。外部文件的数据可分为简单文本数据、XML数据和复杂数据。对于简单的文本数据可采用文件流方式传输。对于XML数据可采用XML方式传输。对于复杂的数据,需要通过其他程序来辅助数据传输。,21.1.1 内部数据传输,1直接赋值方式2公有变量方式,21.1.2 文件流方式传输,文件流方式传输是指数据以二进制文件流的形式流动。简单的数据可存储于文本文件中,通过Flex AIR工程中新增的File、FileStream等类可以方便地操作本地文件。,21.1.3 XML方式传输,XML优点是简单小巧、存储方便、检索快速。所以,XML常用于数据存储和数据交换。Flex 4.0使用URLLoader类可方便地传输XML数据。,21.1.4 其他方式传输,除了上述介绍的数据外,Flex应用程序可能还会遇到其他类型的外部数据。Flex 4.0不能直接接收这些数据,需要其他程序处理这些数据后以特定的类型,如数组型、XML型、Object型传递给Flex。另外,Flex 4.0中新增了对本地数据库(.db格式)操作的类,可用于读取本地的数据库数据。新增了对PDF数据操作的类,可用以读取PDF数据。有关新增的特性将在后续章节中介绍。,21.2 使用组件与HTTP程序交互,组件可与所有的HTTP程序交互。例如,ASP、ASP.Net、JSP、PHP等。网址带参方式的优点是传参简单,但缺点是参数必须先转化为字符串类型,因为网址中只能是字符串类型。另外,若传递的参数较多,网址字符串就会变得很长。使用网址带参方式能把Flex应用程序中的数据传递给HTTP程序。HTTP程序接收数据后进行处理,并返回Flex可识别的数据类型。组件返回的数据存储于ResultEvent类中。使用组件的result事件可处理HTTP程序返回的数据。,21.3 组件实例,本节以实例讲解如何使用组件与HTTP程序交互。实例实现的功能为:Flex客户端传递操作数参数给ASP.Net程序,ASP.Net程序计算全部参数的和,并将结果返回给Flex应用程序。,21.3.1 编写ASP.Net程序,本实例的ASP.Net程序使用Visual Studio 2005(简称VS 2005)编写,创建步骤如下。(1)双击打开VS 2005。(2)选择“文件”“新建”“网站”命令,打开“新建网站”对话框。(3)在“模板”区域选择“ASP.NET网站”模板。在“位置”文本框中输入网站的存放路径。单击“确定”按钮完成网站的创建。,21.3.1 编写ASP.Net程序,(4)编写ASP.Net代码。创建网站工程后自动生成了“Default.aspx”文件。按下F7快捷键打开“”文件。“”文件是“Default.aspx”网页的后台代码页。(5)在“目标位置”文本框中输入发布网站的本地路径,其他可默认。单击“确定”按钮,完成发布网站。发布网站的结果是生成不带后台文件(.cs文件)的网站。,21.3.2 创建虚拟目录,配置虚拟目录步骤如下。(1)选择“开始”“控制面板”命令,打开控制面板。(2)双击“管理工具”“Internet信息服务”项,打开“Internet信息服务”对话框。(3)在左侧树形列表中右击“默认网站”,选择“新建”“虚拟目录”命令,弹出“虚拟目录创建向导”对话框。(4)单击“下一步”按钮,弹出“虚拟目录创建向导”第二步对话框。,21.3.2 创建虚拟目录,(5)在“别名”文本框中输入虚拟目录别名。单击“下一步”按钮,弹出“虚拟目录创建向导”第三步对话框。(6)在“目录”文本框中输入网站路径。单击“下一步”,弹出“虚拟目录创建向导”第四步对话框。(7)根据需要选择项目,一般默认即可。单击“下一步”按钮,完成虚拟目录的创建。(8)在新建的虚拟目录中右击相应的网页,选择“浏览”命令测试网页是否运行正常。,21.3.3 编写Flex程序,编写Flex程序的步骤如下。(1)新建Flex工程。(2)设计外观模型。(3)添加组件。(4)编写按钮处理函数。(5)按下Ctrl+F11键编译运行程序。,21.4 使用组件与WebService程序交互,Flex 4.0中的组件专门用于调用和处理WebService。本节将介绍WebService的相关知识及如何使用组件。,21.4.1 WebService概述,WebService是一种在互联网中提供服务的技术。WebService技术标准由各大软件开发商制定,主要解决了不同开发语言间的沟通问题。例如,.Net程序调用WebService服务,而此WebService服务是由Java语言开发的。WebService具有通用性。不论用何种语言开发的WebService服务,调用的结果都是一致的。这是因为WebService有自身的标准,与开发语言无关。用户可使用几乎任何语言调用WebService服务,只要能找到WebService服务并传递的参数正确。,21.4.2 如何使用组件,组件的使用方法与组件的使用方法大同小异。最主要的区别在于参数的传递方式。,21.5 组件实例,本节的实例实现了如下功能:Flex程序通过WebService获取SQL Server 2000数据库中的数据,并将数据显示于DataGrid组件上。涉及的技术包括创建SQL Server 2000数据库、使用VS 2005编写WebService、使用组件等。,21.5.1 创建数据库,设计数据库名为“Company”。数据库中只有一张名为“Employee”的表。建立数据库步骤如下所示。(1)选择“开始”“所有程序”“Microsoft SQL Server”“查询分析器”命令,打开查询分析器,。(2)在查询分析器的编辑区中输入SQL语句。(3)选择创建数据库Company的全部SQL语句(到第一个“go”为止)。(4)单击按钮执行SQL语句。,21.5.1 创建数据库,(5)选择设置当前数据库为Company的全部SQL语句(从第一个“go”到第二个“go”为止)。(6)单击按钮执行SQL语句。(7)选择剩余的SQL语句(从第二个“go”至最后)。(8)单击按钮执行SQL语句。,21.5.2 编写WebService,使用VS 2005编写WebService的步骤如下。(1)选择“文件”“新建”“网站”命令,弹出“新建网站”对话框。(2)选择“ASP.Net Web服务”模板,在“位置”文本框中输入项目路径。单击“确定”按钮,完成项目的创建。(3)编写WebService。在新建“ASP.Net Web服务”工程后会自动生成一个名为“Service.asmx”的文件。(4)按下Ctrl+F5组合键,编译运行WebService程序。,21.5.2 编写WebService,(5)单击“生成”“发布网站”命令,发布WebService网站。(6)为WebService网站创建虚拟目录。创建步骤与实例中相同。(7)在IIS中右击“Service.asmx”文件,选择“浏览”命令,测试WebService。,21.5.3 编写Flex程序,编写Flex程序的步骤如下。(1)新建Flex工程。(2)添加DataGrid组件。(3)添加组件。(4)完成剩余代码。(5)按下Ctrl+F11组合键,编译运行程序。,21.6 使用Fluorine网关与ASP.Net类交互,上面章节中介绍了使用组件与ASP.Net网页进行交互。但这种方式的效率不如直接与ASP.Net类交互。Flex 4.0应用程序与ASP.Net类交互的难点在于,两种语言的数据类型几乎完全不同,不能正常交互。,21.6.1 Fluorine简介,Fluorine是一种开源的AMF(ActionScript Messaging Formatter)网关,专门负责Flex 4.0与.Net交互时的数据类型转换。Fluorine现支持ActionScript 2.0和ActionScript 3.0,所以Fluorine也可作为Flash与.Net交互时的AMF网关。Fluorine开发团队将Fluorine项目制作成Virsual Stdio中的模板,方便用户安装和配置。21.6.2 Fluorine的下载与安装1下载Fluorine2安装Fluorine,21.6.3 第三方组件RemoteObjectAMF0的使用方法,使用RemoteObjectAMF0组件的步骤如下所示。(1)将RemoteObjectAMF0组件的源文件放置在工程中。(2)引用RemoteObjectAMF0组件所在的包。(3)MXML文件中定义RemoteObjectAMF0组件。(4)调用RemoteObjectAMF0组件中的方法。,21.6.4 Fluorine实例,使用Fluorine网关与ASP.Net类交互的步骤如下。(1)创建数据库。数据库名为“School”,表名为“Notes”。(2)新建Fluorine项目。(3)设计ASP.Net类。在自动生成的代码文件夹“App_Code”下新建名为“GetSQLServer2000Data.cs”的类文件。(4)在VS 2005中按下Ctrl+F5组合键编译运行程序。(5)选择“生成”“发布网站”命令,发布网站。(6)为网站设置虚拟目录。,21.6.4 Fluorine实例,(7)在IIS中,右击“Gateway.aspx”文件,选择“浏览”命令,测量运行是否正常。(8)复制RemoteObjectAMF0组件源文件至工程根目录下。(9)引用RemoteObjectAMF0组件的包,并定义名称空间。(10)定义RemoteObjectAMF0组件。(11)设计外观模型。本程序中的可视化组件包括DataGrid组件、Label组件、TextInput组件、Button组件等。(12)编写GetData()方法调用成功后的处理函数。(13)完成剩余代码。,21.7 小结,本章详细地介绍了数据的传输与交互。数据传输按数据类型可分为内部数据传输、文件流方式传输、XML方式传输、其他方式传输。使用组件可与HTTP程序交互,如ASP、PHP、ASP.Net、JSP等。使用组件可与WebService交互。使用Fluorine网关可与.Net类交互。通过本章的学习,读者能够掌握Flex 4.0如何与其他程序交互。,