APP下载

基于.NET平台的Flash应用集成开发

2009-10-27乔红荻

合作经济与科技 2009年23期
关键词:多媒体

乔红荻

提要本文介绍了基于.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动画。此步利用FlashMX强大的设计工具,任意设计制作一个多媒体动画。

第二步,在VS.NET中控制Flash的播放。打开VS.NET,打开新建项目窗口,左边“项目类型”中选择“Visual C#”项目,右边“模板”中选择“Windows应用程序”,输入项目名称,然后确定。在“工具箱”中点开组件页,单击右键,选择“添加/移除项”,即打开“自定义工具箱”,再点击“COM组件”页面,从中选择“Macromedia Flash Factory Object”,如果没有这一项,可点击“浏览”按钮后再系统中查找Flash.ocx文件(如果系统为win2003,请在“C:WINNTsystem32MacromedFlash”目录下找到该文件)。

添加完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平台相结合,可以制作出更加功能复杂的多媒体应用程序。

(作者单位:南阳市体育运动学校)

主要参考文献:

[1]韩春红,薛涛.基于VB.NET多媒体Flash播放器的实现.中国校外教育(理论),2008.3.

[2]谢富平.基于FLASH技术的网络多用户媒体播放控件的研究与实现.丽水学院学报,2009.2.

猜你喜欢

多媒体
借助多媒体探寻有效设问的“四度”
多媒体在《机械制图》课中的应用
初中化学因多媒体而绽放光彩
巧用多媒体 让课堂练笔更加有效
多媒体达人炼成记
适切 适时 适度——说说语文课堂的多媒体使用