当应用服务器返回远程服务方法调用的结果时,事件处理方法就会应用返回的数据,或者处理返回的出错信息。
例如,结果处理方法可以在Flash影片应用程序中显示调用结果,而出错处理方法可以在Flash影片应用程序中设置trace方法显示出错信息。
对于使用Service类创建到远程服务的连接并调用远程服务方法的,以及可以使用RelayResponder 构造器直接指定对象和事件处理方法的,你可以直接使用这里定义的对象和事件处理方法处理返回的结果或出错信息。
对于使用NetServices类和Connection类创建到远程服务的连接,并调用远程服务方法的,则有更多的选择,你可以定义结果处理层级。
1.结果处理层级
Flash Remoting MX支持下列事件处理层级:
(1)如果在使用Connection对象的getService方法时定义了Responder对象,那么Flash Remoting MX就会做下列事件:
①如果Responder对象中有一个形如functionName_Result的方法,并且functionName是调用的远程服务方法名,Flash Remoting MX就会将该方法调用的结果返回给与该方法同名的_Result方法。
②如果Responder对象中有一个名为onResult的方法,Flash Remoting MX就会将该方法调用的结果返回给该方法。
(2)如果在调用远程服务方法时定义了Responder对象,那么Flash Remoting MX就会将结果返回给该对象的onResult方法。
注意:在使用Connection对象的getService方法定义了Responder对象后,就不要同时使用远程服务方法定义Responder对象。如果这样做的话,Flash Remoting MX就会将远程服务方法中定义的Responder对象作为一个参数传递给远程服务方法,这样程序就会出问题。
(3)当在Flash创作环境开发阶段测试应用程序时,没有定义一个Responder对象,那么Flash Remoting MX就会在“输出”面板中显示调用结果。
2.结果处理策略
不同的结果处理程序为开发人员提供了各种不同的结果处理策略,开发人员可以使用不同的策略来适应应用程序的需要。
下面我们来详细介绍一下开发过程中要应用的结果处理策略。
(1)使用getService方法定义Responder对象
如果使用gatewayConnection.getService方法定义Responder对象,那么可以应用下面的技术:
①在gatewayConnection.getService方法中定义一个对象(一般是主时间轴this)作为Responder对象,然后在主时间轴中为每一个远程服务方法创建一个单独的_Result处理方法。
一般在满足下列条件时使用该技术:
◆对一个方法调用的_Result方法应与对另一个方法调用的_Result方法不同
◆对于所有远程服务中的所有方法来说,每个一方法都有一个独一无二的方法名。例如,你不能在两个远程服务调用中使用相同名字的方法:myFirstService. myFunction和myOtherService.myFunction,这样就会出问题,因为两个结果需要不同的处理过程
◆在一个远程服务中对一个特定方法的调用可以使用一个Responder对象处理
②在gatewayConnection.getService方法中定义一个对象(一般是主时间轴this)作为Responder对象,然后在主时间轴中创建一个onResult方法处理所有的远程服务方法调用结果。
这种技术只有在对所有远程服务方法的所有请求的结果可以使用一个方式进行处理时才适用。
③使用前两种方法的结合。在gatewayConnection.getService方法中定义一个对象(一般是主时间轴this)作为Responder对象,然后在主时间轴中为一些远程服务方法创建单独的_Result方法,然后为其他的远程服务方法创建一个onResult方法处理这些远程服务方法调用的结果。
一般在满足下列条件时使用该技术:
◆一些远程服务方法的调用结果的处理机制与其他远程服务方法调用结果的处理机制不同
◆处理机制不同的所有远程服务调用中的方法有一个独一无二的方法名
◆一些远程服务方法虽然方法名不同,但其调用结果的处理机制相同
◆对一个特定方法的不同调用,其调用结果可以使用一个Responder对象处理
使用处理层级的例子
下面的例子揭示了怎样使用主时间轴作为Responder对象,并且为一些远程服务方法定义一个onResult结果处理方法,以及为其他的一些远程服务方法定义特定的functionName_Result结果处理方法。
在该例中,有两个方法用于特定的functionName_Result结果处理方法,它们是getTemperature_Result和getForecast_Result(这两个方法用来显示返回的temperature和forecast)。而onResult结果处理方法用来在一个信息文本框中显示结果:
|
(2)使用远程服务方法定义Responder对象
如果要在调用远程服务方法时定义Responder对象,可以使用下面的技术:
①定义一个Responder对象。使用结果处理方法将结果值赋给一个Responder对象,可以将Responder对象的一个实例作为gatewayConnection.getService方法的一个参数传递给它。
使用这种技术比使用this作为Responder对象更加面向对象,这允许你使用更加结构化的代码。
②定义几个不同的Responder对象。使用结果处理方法将结果值赋给不同的Responder对象,可以将每一个Responder对象的一个实例作为serviceName.functionName调用时的一个参数传递给它。
该技术允许开发人员为特定Responder对象创建方法,在这种情况下,一些service应有相同的方法名,但是返回的数据不同;该技术也允许开发人员为一个远程服务方法创建几个不同的结果处理方法。
③使用上述两种方法的结合。为一些远程服务方法使用多个Responder对象;为另一些远程服务方法使用单独的一个Responder对象。
下面是在远程服务方法调用中为每一方法定义一个result对象的例子,与前面介绍的例子目的基本相同,但是我们在该例的远程服务方法调用中为每一调用定义了回应处理对象。
在该例中,有三个回应处理对象,它们是tempResult、forecastResult和generalResult(这三个回应处理对象分别用来显示返回的temperature、forecast和其他的远程服务方法)。每一个回应处理对象中有一个onResult结果处理方法用来处理远程服务方法调用返回的结果:
|
| 回书目 上一节 下一节 |
|
· SQL Server入门到精通.. · 交换技术配置手册技术.. · 超级网管员——网络应.. · 网络服务器配置与应用.. · Linux集群技术自测试题.. · JavaSript核心技术自测.. |
· ARP攻击与防范技术自测.. · 国庆挑战自己参加自测 .. · 《网管员必读—网络应.. · 历次技术自测 获奖网友.. · 51CTO国庆七天技术自测.. · 9.2.2 无线AP |
|
|||
| · 网管系统介绍 · 网络管理系统如何支撑I.. · CISSP认证成长之路 · 51CTO国庆充电专题之好.. · 网络技术经典基础教程 · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. |
· 51CTO技术自测 挑战自.. · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 · 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · C#技术开发指南 · Solaris 10 配置管理 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·体验Windows Server 2008.. ·将超星图书转成PDF文档 |
·使用 Office Communicati.. ·VMware Workstation 6.01.. |
| ·强烈质疑“步行1公里就能.. ·国庆期间新闻回顾:微软.. |
·9月第3周回顾:微软和英.. ·9月第2周回顾:四核之战.. |
| · 华为、贝恩资本22亿美元.. · NGN:下一代网络 · 网络访问中断大排查 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· Google推出唯一硬件——.. · 硬盘之父获得诺贝尔物理.. · 理性面对四核服务器选购 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 硬盘之父获得诺贝尔物理.. · 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. |