回 帖 发 新 帖 刷新版面

主题:[原创]《.NET for Flash动态网站开发手札》_部分章节连载_2

keyword: Flash和.NET结合开发的利器;Flash和.NET通信;Flash和.NET通讯

[b]第Ⅱ篇  Flash网络应用程序和Flash Remoting[/b]

在第一篇,我们介绍了.NET for Flash的基本原理,了解了怎样使用Flash内建的功能方法与.NET实现交互,这种交互方式其实是一种极其简单的HTTP操作,来回传递的都是字符串格式的数据(XML也是字符串,需要解析为DOM)。

人们需要一种更为简洁的方式能够实现类似Native的操作,于是Flash Remoting便应允而生,这符合IT工业的一贯标准。

在这一篇,我们将介绍怎样使用包括XML-RPC、WDDX、SOAP和AMF-RPC(Flash Remoting MX、Fluorine和AMF.NET)等在内的Flash Remoting技术,开发人员可以更轻松的完成过去需要编写很多代码才能完成的任务。

本篇包含很多的章节,是本书的主体部分,主要就是介绍怎样使用各种Remoting工具实现.NET for Flash的强大体验。

[b]现在马上出发[/b]


       作者邀您访问他的BLOG: [url]http://zhang-yafei.spaces.live.com[/url](繁体)
       作者邀您访问他的BLOG: [url]http://blog.csdn.net/zhang_yafei[/url](简体)

回复列表 (共5个回复)

沙发

[b]第06章  Flash Remoting和AMF-RPC for .NET基础入门[/b]

在前面的章节,我们介绍了Flash如何通过中间件ASP.NET网页与服务器之间实现数据交换,了解了Flash影片应用程序如何融入到网络应用环境的最一般原理,有了基本的创建具有网络交互功能Flash影片应用程序的基本知识。

这一章,我们将开始使用Flash的一个最重要的服务器组件AMF-RPC来实现与Flash影片应用程序的交互,用户可以感受到更加强烈的Flash网络应用程序“感觉”,从而可以更轻松的创建功能更强大的Flash网络应用程序——这就是“富媒体应用程序”。

使用Flash作为开发工具,我们现在可以开始学习怎样使用AMF-RPC创建更为强大而且易用的富媒体应用程序了。

[b]6.1 Flash Remoting基础和AMF-RPC基础[/b]

随着互联网不断介入应用程序开发的各个领域,协调运算便不断成为应用程序开发所追求的方向。应用开发也随之形成了一种习惯:即将应用程序构建成一组组件,分布于计算机网络之间,并作为整个程序的一部分一起运行,这便是分布式应用程序。

为了实现这一目标,人们创建了各种各样的技术。例 如,Microsoft的DCOM(分布式组件对象模型)、Object Management Group的CORBA (公共对象请求代理程序体系结构)、Sun的RMI (远程方法调用)。这些技术提供了可靠的、可升级的体系结构,以满足对应用程序日益增长的需要。

但是,目前要实现它们的话,存在着不少的问题。DCOM在跨防火墙工作时会有问题,因为它是建立在私有协议上的;而CORBA存在有多种不同接口的问题;RMI的应用有些麻烦,因为你不得不去搜寻一个对象,然后才能调用方法。

并且,随着计算机客户端软件不断的异化,必须保证各种各样的软件终端都可以连接到远程的服务组件,并能够实现互操作。于是基于XML的远程过程调用(RPC)便应运而生,比较知名的RPC包括XML-RPC和WEB服务,这些技术都是Remoting技术。

Remoting技术的实现必须包含两个方面:

1Remoting Channel:这是指客户端和服务端的通信协议,例如我们可以使用TCP、HTTP协议。

2Serializer:这是指在传输时采用何种格式来传输数据,例如我们可以采用Binary,也可以采用SOAP来传输XML格式的数据。

客户端的数据经过序列化通过HTTP被传递到远程服务端,在服务端,一般会有一个代理(网关)接收并将数据逆序列化,从而执行位于服务端的方法,并返回给客户端。

随着Flash不断介入应用程序开发的各个领域,作为一个流行的应用程序终端,用于Flash的Remoting实现也日渐多了起来,从最早应用于Flash 5的SQL Component Kit,到现在日渐流行的XML-RPC、WDDX、Flash Remoting MX(AMF-RPC)等。

AMF-RPC是目前最重要的Flash Remoting技术。
 
[b]6.1.1 AMF-RPC技术简介[/b]

AMF -RPC是使用AMF 数据格式实现的远程方法调用,Macromedia公司为此出品了三个个实现:Flash Remoting MX for J2EE、Flash Remoting MX for .NET和Flash Remoting MX for ColdFusion,并且开源社区也为AMF-RPC编写了一个在PHP架构下的实现,名为AMFPHP(也可以称为Flash Remoting MX for PHP)。

就如其它的RPC 工具一样,AMF-RPC是一个应用程序服务器网关,它在Flash影片应用程序和远程服务之间提供一个相互通信的网络通道:在这个通道间传输的是AMF格式的数据(AMF是专用于 Flash远程数据传输的一种数据格式);远程服务则包含各种应用服务技术(例如JavaBeans、ColdFusion组件和网页、ASP.NET网页或者Web服务等等)。

和其它的连接到外部数据提供者的技术相比,AMF- RPC的优点是不言而喻的。在前面一章我们介绍的像getURL、loadVariables、XML和XMLSocket等语句,它们都是使用的简单的 HTTP功能,一般都离不开内建的类如Request和Response这样的语法,而AMF-RPC则有其独特的一面,总的说来有下列优点:

1易用。AMF-RPC可以对本地远程服务程序代码(Java,CFML,PHP,VB和C#)的数据类型进行自动转换:可以转换成ActionScript代码数据类型,也可以转回本地远程服务程序代码数据类型。

2 高性能。AMF-RPC使用Action Message Format(AMF)将Flash影片应用程序和远程服务之间的通信信息序列化。AMF是一个二进制格式,符合Simple Object Access Protocol(SOAP)协议格式,通信更加快速。

3可扩展性。AMF-RPC设计的时候集成了现有应用程序设计模式和最佳的开发实践,从而可以满足高度扩展性Flash网络应用程序设计要求。

要了解这些优点,最好是先来看一个简单的使用AMF-RPC创建的Flash网络应用程序。

板凳

[b]第08章  在Flash影片应用程序中处理记录集结果[/b]

要连接到.NET应用程序服务器上的Flash Remoting MX服务并且调用远程服务方法,就必须使用mx.remoting和mx.rpc这两个ActionScript类库:这两个类库包含了所有的Flash Remoting MX for ActionScript 2.0类和方法实现。

其中,mx.remoting是一个十分核心的ActionScript类库,它包含了用来与应用程序服务器建立连接的所有对象及方法,而mx.rpc可以用来调用远程方法并处理结果。

在前面的章节中,我们介绍了如何通过Flash Remoting MX网关服务在ASP.NET网页中向Flash影片应用程序传递数据,也介绍了如何使用Flash影片应用程序向ASP.NET网页传递参数,并且介绍了如何使用Flash Remoting MX for .NET与ADO.NET数据库查询结合调用数据库,而且创建了两个简单的例子。

但是,当从ASP.NET网页向Flash影片应用程序传递的数据被接收到时,如何处理接收到的结果呢?我们在前面的例子中已经使用了一些方法,但这只是在 Flash影片应用程序中处理结果丰富方法中最简单的,Flash Remoting MX for ActionScript 2.0客户端组件内置了丰富的ActionScript脚本语法用来处理结果。

本章就来详细地介绍一下这些ActionScript脚本语法。

3 楼

8.4使用DataGlue对象处理记录集数据

要在一个Flash UI组件中显示RecordSet记录集,一般可以使用该组件内建的setDataProvider()方法或者dataProvider属性,但是如果想在一个Flash UI组件中显示记录集中某一字段下的所有记录,就比较困难了。

例如,在前面的例子中,我们要在一个下拉列表框组件中显示记录集中酒店名,就必须首先创建一个新的单字段记录集,将原记录集中该字段的数据填充新的单字段记录集,然后再使用组件的setDataProvider()方法或者dataProvider属性,显然,这比较麻烦,而且占用的资源也比较多。

为了解决这个问题,Flash Remoting MX还内建了名为DataGlue的ActionScript类。使用DataGlue ActionScript类文件也可以在一个Flash UI组件中显示RecordSet记录集。DataGlue ActionScript类文件随同Flash Remoting MX组件一起被安装,要使用它,必须导入相应的类库,可以使用下面的一行脚本:

import mx.remoting.DataGlue;

DataGlue类有两个内建的方法:DataGlue.bindFormatStrings()和DataGlue.bindFormatFunction(),使用这两个方法都可以在Flash UI组件(例如组合框和列表框)中显示记录集。

4 楼

在《.NET for Flash动态网站开发手札》一书中,描述了如何将本书内容用于Flash Professional 9 Preview,现在你依然可以将该书内容用于Flash CS3 Professional,方法同理。包括AMF-RPC for AS1和for AS2皆同此理。

随未经过测试,但我也知道可以。
所以,我建议您一定要在理解的基础上阅读《.NET for Flash动态网站开发手札》。

期待你成功的消息。

5 楼

本书完全适用于新版Flash cs3,请严格按照书中介绍的步骤进行配置。

我来回复

您尚未登录,请登录后再回复。点此登录或注册