日期:2011-08-19  浏览次数:20544 次

一、 简介 Macromedia公司的Flash如今被广泛应用于互联网上以实现增强Web网站的内容描述。Macromedia最近发行的Flash(Flash 6和Flash MX)版本已经明确表示,Macromedia正在十分认真地考虑把Flash作为Web应用程序开发的接口选择。对于一个接口来说,Flash可能是一伟大的选择;然而,这个选择不是用它来替换商业逻辑,查询管理和安全。对于一个Web开发者来说,要实现真正强壮的性能和企业级能力,你需要.NET,Flash以及丰富的描述层支持,并联合微软的.NET技术。

  Flash包括ActionScript-一种脚本语言,用来对动画添加交互性。从Flash 5中开始引入ActionScript脚本以来,Macromedia不断地改进它,从一个简单的脚本语言到相当牢固但仍存在许多局限性的编程特性。在Flash MX 2004中,Macromedia引入了ActionScript 2.0-它支持新的功能和新的方法来构建代码。为了更易于理解本文,你应该先阅读一些有关用ActionScript来构建Flash站点的基本知识。

  Macromedia已经介绍了方法来实现容易地集成外部的数据到Flash应用程序中以允许更复杂和强壮的数据驱动应用程序。Flash和.NET都把它们自己推荐为跨平台的解决方案并且,由此而成为自然的搭挡。仍然,联接这两项技术不是简单的任务。这篇文章将同你一起讨论把Flash和.NET应用程序集成到一起的几种方法。

  二、 集成Flash和ASP.NET

  把Flash动画嵌入到ASP.NET页面

  Macromedia Flash动画通过联合使用OBJECT和EMBED标签放置在.aspx页面中。EMBED标签最初是Netscape公司为了实现与Netscape 2.0或更高级的版本一起工作而开发的。以后,这个标签被微软的Internet Explorer(MSIE)所采用。为了实现浏览器兼容性,可以共同使用MSIE特定的OBJECT标签和EMBED标签。下面的HTML代码展示了用OBJECT标签和EMBED标签来嵌入一个Flash动画(*.swf文件)的情形:

  三、 把Flash连接到外部的数据
  有三种方法可以把Flash动画与外部数据集成到一起:FlashVars,LoadVars以及新的FlashRemoting技术。其中最简单的一种方法是,通过使用FlashVars来传递代码的HTML部分中的变量,实现把外部数据从一个.aspx页面传递到一个嵌入在Web页面中的一个Flash动画。使用FlashVars设置的这些变量值可以在Flash动画的根层次上进行存取。为能在所有的浏览器环境下运行,该FlashVars属性必须在OBJECT和EMBED标签中进行赋值。
  下面是和一个对象标签一起的FlashVars:
<PARAM Name="FlashVars" Value="init=yes&check=true">
  下面是和EMBED标签一起使用的FlashVars:
<EMBED src="http://www.pushad.com/Info/test.swf" FlashVars="init=yes&check=true"></EMBED>
  要了解更多的有关FlashVars的信息,请参考来自Macromedia的文章http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_16417
  四、 为什么使用FlashVars
  不借用FlashVars,也可以把变量放在HTML标签中-通过一个查询串形式把它添加到.SWF文件的URL后面,进而传递到一个Flash动画。这个方法可能存在一个问题-如果这个变量在.SWF文件加载时就需要的话,因为一个.SWF文件应该在从服务器发出请求数据之前就被下载和运行。变量值也可能是通过"Load Variables"方法和JavaScript在Flash中设置的。每一个这些方法都有惰散慢响应的缺点;这就是为什么开发者应该使用FlashVars来把数据从ASP.NET传递到Flash动画的原因。下图显示出以一个查询串方式传递变量的代码:
  任何使用FlashVars传递的变量都能被在Flash动画的根层次(_level0)上进行存取。为了检索一个Flash动画内部的这些值,可以创建一个动态变量。下面ActionScript代码实现在Flash中为"initvalue"赋值:
_level0.initvalue = init;
  五、 Flash与数据库的通讯
  一个Flash动画不能直接存取一个数据库。然而,Flash能够经由任何象ASP或ASP.NET等的服务器端技术与数据库进行通讯。有完成这项任务的若干方法。在本文中,我们将解释LoadVariables方法和sendAndLoad方法。
  (一) 在动画片断中使用loadVariables方法
  动画片断的loadVariables方法读来自一外部的文件或URL的数据并且为该动画片断的变量设置值。一旦该动画片断被实例化,在片断事件事件处理器中的动画片断的装载行动被初始化。在动画片断被初始化时,loadVariables方法可以被调用来加载变量。loadVariables方法是异步的调用并且Flash不会等待该调用的结果。当在一个loadVariables()行为中收到数据时,在片断事件事件处理器中的动画片断的数据行为被初始化。
  为了展示这个方法的用法,这个示例根据从Flash动画中选择的ID从一个数据库检索用户的姓名和年龄。在下面的图中,动画的loadVariables方法被使用来装载数据到来自一个.aspx页面getUserData.aspx的动画片断。这里,ActionScript传递用户的id-他的名字和年龄将以一个到.aspx页面查询串的形式显示于Flash动画中。

  这个getUserData.aspx页面从显示于下面的查询串中检索id值:


  现在,ASP.NET能把这个值的id传递到.NET商业组件中。这个示例检索用户的姓名和年龄:

友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:865人  网站在9时27分8秒内访问总人数:111249人 当前 63.59%  粤ICP备18100884号-2