工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 微软开发专栏 > 技术专题 > 正文
SOAP+Flash 更友好的Web应用程序
[文章信息]
作者:霍炬编译
时间:2004-11-14
出处:天极网
责任编辑:方舟
[文章导读]
利用Flash5的XML能力,用SOAP进行通讯,可以创建Flash界面Web应用程序
advertisement
热点推荐
· Java加密和数字签名编程快速入门
· 在VB6中用命令行为模式控制GUI动作
· Excel图表向导详解
· 浅析各种计算机病毒应对方法
· 2月16日软件精选 春节文章精彩回顾
[正文]

上一页  1 2 3 4  


  第四步:实现SOAP消息

  其实这样功能的计算器使用Flash集成的脚本语言ActionScript就可以轻松完成,但是我们这里演示的是SOAP计算器,所以需要利用服务器完成所有的计算请求。Flash5能够发送和接受XML文档,而SOAP消息也是普通的XML文档,所以我们可以使用Flash集成的XML对象来建立和解析SOAP消息。

  为了使建立Flash/SOAP应用程序的过程更为简单,你可以下载Media Revolution所开发的Flash SOAP组件。它是免费的。这个组件通过封装XML操作而简化了在Flash中发送和接受SOAP消息的操作。可以从http://software.mrev.com/soap.asp下载这个组件。使用方法是把它复制到Flash影片所在目录,在root level加入一个名为SOAP的影片夹子,并加入如下代码:

loadMovie ("SOAP.swf", "_root.SOAP");

  在函数calculate()中使用这个SOAP对象。首先,创建一个新的SOAP对象。注意名称"SOAP"要和上一步加入的SOAP组件名称相同。

  为这个对象的onLoad属性分配一个函数名。这个函数在SOAP对象接受或处理SOAP回应时运行。(函数displayCalcResult将在后面定义)。

  代码如下:

function calculate (operator, a, b) {
 ...
 var SOAPCalc = new SOAP.SOAP();
 SOAPCalc.onLoad = displayCalcResult;
...
}

  然后,使用内建的SOAP方法createMethod() 和 addParameter() 定义远端过程调用的类型。SOAP对象假定服务器应用程序期望的节点和调用的方法同名。并且返回一个名称为[方法名]Response的节点。 (比如 AddResponse)。
代码如下:

function calculate (operator, a, b) {
 ...
 SOAPCalc.createMethod(operator);
 SOAPCalc.addParameter("A", a);
 SOAPCalc.addParameter("B", b);
 ...
}

  最后,使用SOAP对象的方法send(),把请求发送到前面建立的SOAP监听器的地址上。

function calculate (operator, a, b) {
...
SOAPCalc.send
("http://localhost/SOAPCalc/default.asp");
...
}

  注:因为安全问题,Flash播放器限制SOAP请求和影片在一个子域中。Macromedia将发布一个修正版的播放器,以便解决这一问题。

  当SOAP对象收到和解析服务器发回的回应,onLoad事件将被触发。通过前面分配给onLoad属性的函数,可以很容易的存取服务器的回应信息。比如:

function displayCalcResult () {
 _root.calcValue = this.Response.Answer;
}

  SOAP Response对象中的[函数名]Response.Answer节点中存放的就是计算结果。

  回应的SOAP消息如下所示:

<SOAP-ENV:Envelope xmlns:
 SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">
 <SOAP-ENV:Body>
  <AddResponse>
   <Answer>10</Answer>
  </AddResponse>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

  上面的displayCalcResult()远程操作返回的值存放在root-level的变量 _root.calcValue中,这样动态文本框将自动显示其值。

  这些都做好以后,你就拥有了一个Flash SOAP计算器了。完整的演示可参见:http://software.mrev.com/demo/soap

  关于错误处理,请解析<Fault>节点的子节点<faultcode>和其他节点,它们包含了错误信息:

<?xml version="1.0"?>
<SOAP-ENV:Envelope>
 <SOAP-ENV:Body>
  <SOAP-ENV:Fault>
   <faultcode>Server</faultcode>
   <faultstring>
    Parameter missing: B
   </faultstring>
  </SOAP-ENV:Fault>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

  通过Flash使用SOAP传递信息,把用户界面和数据分离,是一个不错的主意。这样客户端可以得到比以往的Web界面更丰富的多媒体界面。通过在Flash函数内封装SOAP请求和SOAP组件,大大降低了开发难度,甚至可以让对XML和SOAP不很熟悉的Flash开发人员轻松的应用。



上一页  1 2 3 4  

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • 国信办督战八大行业灾难备份 将出台国家标准
  • 中国IT企业走进欧盟 搭第六框架计划直通车
  • 美邦银行用户注意 警惕新型“钓鱼”邮件
  • 微软三年时间磨出新IE 具有更强大安全性能
  • Advertisement