ASP.NET中实现Flash与.NET的紧密集成(2)

2008-02-22 09:31:51来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  正如在本节中前面所提及的,动画片断的onClipEvent事件处理器的数据行为被初始化,当数据被在一个loadVariables()行为中收到时。在Flash动画中声明下列动态的变量:flashName和flashAge。下列图显示出ActionScript代码-它被用于Flash动画的onClipEvent处理器中以检索从.aspx页面传回的值。

  注意:它是很重要的-与从.aspx页面中设置的变量是相同的。在此展示的示例中,在Flash动画中所存取的变量为"name"-它从.aspx页面中设置的变量是相同的(Response.Write("name="&User.name))。


  这些值现在可以被使用于Flash动画内部。

  (二) 从动画片断中使用sendAndLoad方法

  在今天的互联网上,XML作为一种具有甚至能允许不同类型的应用程序之间顺利交换数据潜力的通用传输格式,以一个文档系统的形式占有重要地位。XML为应用程序之间的通讯-甚至在大范围的不同系统上的应用程序-提供一道网关机制。只要应用程序能够共享数据(通过HTTP,文件共享或另外的机制),并且有一个XML分析器,它们就能共享十分易于处理的结构化信息。

  Flash MX支持XML数据传输并且有若干种象ASP和ASP.NET的服务器技术方法来实现交换XML。Flash MX能够通过使用XML类-load,send和sendAndLoad或Flash MX的新的XMLConnector来发送和接收XML数据包。其中,最后一个可以被用于通过HTTP发送和接收包并且把它们绑定到Flash层的UI部件上。

  下面我们讨论一下FlashXML对象的sendAndLoad方法,这是在实现面向架构的XML数据通讯,异常处理及性能方面比较受欢迎的方法。我们使用这个简单示例:从一个Flash客户端把一用户的得分的详细资料插入到数据库并且回送一条成功或失败的消息给该Flash客户端。
  (三) 在Flash中创建一个XML包
  一个XML数据包能容易被创建在Flash中,如下所示:
var sendXML:XML = new XML("<userid>123456</userid>");
  发送一个XML包到一个服务器端页面-它使用ASP/ASP.NET并且处理返回XML数据包。
  用法如下:
xmlObject.sendAndLoad (URL: String, targetXMLObject: XML): Void
  这个'xmlObject'是XML对象实例-它封装必须被发送到.aspx页面的XML;这个'URL'是指定XML对象的目的URL;'targetXMLObject'是该XML对象-它将接收从服务器端返回的信息。
  sendAndLoad方法把一个XML包发送到一个服务器端模板并且收到一个XML包作为响应-这不同于XML类的send方法-它仅发送一个XML包而并不期盼任何类型的响应。这其中每个方法以其自身方式发挥作用,但是有一重要的区别:XML类的send方法以一个目标作为参数-它允许你打开一新的浏览器窗口或替换当前浏览器窗口中的内容,而sendAndLoad方法以一个XML包作为参数-它不会启动一个新的浏览器窗口。因为send方法打开一新的浏览器窗口,我们可以看到浏览器窗口本身的输出-这可能对调试极为有用。
  注意:如果发出sendAndLoad调用的Flash文件在一个Web浏览器中运行,那么目标URL将与Flash动画处理同一个域中。如果你还需要与处于不同域中的应用程序进行通讯,那么可以参考www.macromedia.com站上的"Cross Domain Data Loading"以了解更多的信息。
  下列图形中的代码显示出一个XML对象的sendAndLoad方法是怎样被用于与一个.aspx页面通讯以及是如何处理从服务器返回的XML的:
  上面的代码做下列事情:
  ·装载XML字符串到一个XML对象"userscore_xml"。该实例拥有XML-它被发送到远程服务器端ASP.NET页面。
  ·设置XML对象"ResponseXMLObj_xml"的ignoreWhite属性。这个XML对象实例持有来自服务器的XML包。
  ·调用XML对象的("userscore_xml")sendAndLoad方法以发送XML到服务器端.aspx页面,http://localhost/MyTestApp/scoring.aspx并存储返回的XML包到XML对象实例"ResponseXMLObj_xml"中。
  ·设置XML对象"ResponseXMLObj_xml"的onLoad方法。Flash收到来自服务器端.aspx页面的返回的XML响应-它在XML对象的onLoad方法中被处理。
  ·然后,它分析收到的XML包以在Flash客户端显示必要的消息。
  (四) 接收从ASPX页面的Flash中发送的XML包
  下列图形显示出完成这项任务的代码:
  上面的代码完成下列事情:
  ·收到从Flash客户端发送的XML(xmlDoc.Load(Request.InputStream))。
  ·分析收到的XML并把它传递给商业组件以插入到数据库中。
  ·形成XML消息被传送回Flash客户端。在商业层引发的成功或异常条件被相应地处理并转换成各种XML消息-这个消息被传送回Flash客户端。该Flash客户端收到这些XML消息并相应地显示它们。
  六、 结论
  Flash和.NET技术今天在市场上正逐渐流行开来并将很可能会在不断增加的应用程序架构中一起成为成功的合作伙伴。这两种技术处理一些同样的问题,但是实质上不同的。Flash MX使得Web站点经历交互性,而.NET帮助建造企业应用软件。正如在这篇文章中所探索的,集成Flash和.NET应用软件是完全有可能的。每一步都是在做出决定-如何连接这两部分并在战略上进行正确的架构策划。
  尽管围绕FlashRemoting的新一代架构正在此领域不断获取动力,然而本文所讨论的方法还将在几年之后才能应用于大型领域。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:谈谈HtmlControl与WebControl的区别与用途

下一篇:ASP.NET入门随想之抽象的力量