基于.NET平台的Flash应用 axShockwaveFlash控件使用

提要 本文介绍了基于.NET平台的Flash动画的集成开发方法,以实例说明利用Flash ActiveX如何实现基于.NET平台与Flash的多媒体应用程序集成开发。
  关键词:Flash;多媒体;集成开发
  中图分类号:TP31 文献标识码:A
  一、引言
  Flash是Macromedia公司最新推出的动画制作软件。Flash主要功能是制作发布在网上的动画,但现在也越来越多地应用于多媒体领域,Flash MX作为动画制作软件,具有简单易学、开发效率高等特点,作为多媒体设计软件方面,可以方便地设计出具有良好交互的多媒体前端应用程序;另一方面,大型的多媒体应用需要访问数据库等较为底层的操作,这时仅仅使用Flash MX进行开发就有些吃力。这里给出结合.NET平台与Flash MX一起进行开发大型多媒体应用程序的方案,既可以设计出漂亮的界面,又可以实现强大的功能。
  二、在.NET平台上与FLASH MX动画进行交互的方法
  网页中之所以能够显示FLASH动画,是因为浏览包含FLASH动画网页的时候,浏览器一般会在本地安装Shockwave Flash控件。这是Macromedia公司提供的一个ActiveX控件,而.NET平台对ActiveX控件具有很好的支持。我们只要找到Shockwave Flash控件,就可以在.NET平台中加入FLASH动画。动画的加入只是第一步,接下来我们可以通过以下几种方法在.NET平台中与FLASH动画进行交互:
  1、应用程序通过Shockwave Flash控件的一些方法和属性来控制Flash动画的播放以及获取或设置播放器的属性。这是Shockwave Flash控件对动画的基本控制。主要的属性和方法如下:
  ●Movie:指定播放的Flash文件路径,可以为一个URL;
  ●Menu:是否显示控制菜单;
  ●Loop:是否循环;
  ●Quality:指定当前渲染的质量;
  ●ReadyState:读一个Flash文件时的状态,其中包括0=Load2ing,1=Uninitialized,2=Loaded,3=Interactive和4=Complete;
  ●Play():开始播放指定的Flash动画;
  ●Stop():停止播放动画;
  ●Back():播放前一帧动画;
  ●Forward():播放后一帧动画;
  ●Rewind():播放第一帧动画;
  ●Zoom(Percent as Integer):按百分比缩放;
  ●GotoFrame(FrameNum as Long),将播放头移到指定帧。
  有了这些属性和方法,我们就可以在.NET平台下控制Flash动画的状态。
  2、反过来,如何在嵌入的Flash动画中控制.NET平台下的应用程序从而实现交互式的操作呢?首先我们来了解Flash中控制.NET平台应用程序的基本原理:在Flash的ActionScript里面有个叫做FSCommand()的函数,它的主要功能就是发送FScommand命令,例如使动画全屏播放,隐藏动画菜单。首先来看FScommand命令的格式:
  fscommand("command","parameters")
  在.NET平台应用程序中,我们就是利用的Shockwave flash控件的FSCommand()过程来完成这一通信过程,实现信息发送的功能,并且根据发送出来的不同命令及参数来实现对程序的控制。
  可以看到,不仅可以在.NET平台应用程序里播放控制Flash作品,而且还可以在Flash动画中编写Action脚本代码来控制.NET平台应用程序的运行。由此,实现了.NET平台应用程序与Flash动画之间的完全交互和集成开发。
  三、具体应用细节
  第一步,制作Flash动画。此步利用Flash MX强大的设计工具,任意设计制作一个多媒体动画。
  第二步,在VS.NET中控制Flash的播放。打开VS.NET,打开新建项目窗口,左边“项目类型”中选择“Visual C#”项目,右边“模板”中选择“Windows应用程序”,输入项目名称,然后确定。在“工具箱”中点开组件页,单击右键,选择“添加/移除项”,即打开“自定义工具箱”,再点击“COM组件”页面,从中选择“Macromedia Flash Factory Object”,如果没有这一项,可点击“浏览”按钮后再系统中查找Flash.ocx文件(如果系统为win2003,请在“C:/WINNT/system32/Macromed/Flash”目录下找到该文件)。
  添加完Flash的COM组件后,工具箱中的组件页面下就会出现“Macromedia Flash Factory Object”和“Shockwave Flash Object”两个控件。在主窗体上建一个“Shockwave Flash Object”控件,名字为axShockwaveFlash1。在窗体的Load事件里面添加下面代码:
  axShockwaveFlash1.Loop=false;
axShockwaveFlash1.Movie=Application.StartupPath+@"/maopao.swf";
  axShockwaveFlash1.Play();
  这几行代码规定主窗体启动后马上加载指定的Flash动画文件并播放。如果有需要,可参考本文第二部分罗列出来的属性与算法,对此控件进行进一步的控制。
  第三步,利用Flash控制应用程序的运行状态。在第一步中的Flash动画中可以加入一个按钮,设置其执行动作如下:
  on(release){fscommand("ok");}
  当按下按钮后,此Flash向应用程序发送出名为“ok”的命令。
  回到VS.NET环境中,在应用程序中的InitializeComponent方法中添加以下代码:
  private void InitializeComponent()
  {
  ……
  this.axShockwaveFlash1.FSCommand+=new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEventHandler(this.axShockwaveFlash1_FSCommand);
……

  最后添加如下事件处理程序:
  private void axShockwaveFlash1_FSCommand(object sender,AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvente)
  {
  if(e.command=="ok")
  {
  MessageBox.Show("应用程序接受Flash动画信息成功!");
  this.BackColor=Color.Blue;
  }
  }
  通过以上处理Flash动画传递的FSCommand函数中的信息,我们就可以在应用程序中相应Flash动画的命令。上面的例子中点击相应按钮,则会在应用程序中出现一个对话框,然后改变应用程序的背景颜色。
  利用Flash可以制作出画面细腻,色彩艳丽的动画作品,如果再将其与强大的.NET平台相结合,可以制作出更加功能复杂的多媒体应用程序。

你可能感兴趣的:(.net,object,Flash,Parameters,actionscript,平台)