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

时间:2022-09-20 02:02:35

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

提要本文介绍了基于.NET平台的Flas的集成开发方法,以实例说明利用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控件的一些方法和属性来控制Flas的播放以及获取或设置播放器的属性。这是Shockwave Flash控件对动画的基本控制。主要的属性和方法如下:

Movie:指定播放的Flash文件路径,可以为一个URL;

Menu:是否显示控制菜单;

Loop:是否循环;

Quality:指定当前渲染的质量;

ReadyState:读一个Flash文件时的状态,其中包括0=Load2ing,1=Uninitialized,2=Loaded,3=Interactive和4=Complete;

Play():开始播放指定的Flas;

Stop():停止播放动画;

Back():播放前一帧动画;

Forward():播放后一帧动画;

Rewind():播放第一帧动画;

Zoom(Percent as Integer):按百分比缩放;

GotoFrame(FrameNum as Long),将播放头移到指定帧。

有了这些属性和方法,我们就可以在.NET平台下控制Flas的状态。

2、反过来,如何在嵌入的Flas中控制.NET平台下的应用程序从而实现交互式的操作呢?首先我们来了解Flash中控制.NET平台应用程序的基本原理:在Flash的ActionScript里面有个叫做FSCommand()的函数,它的主要功能就是发送FScommand命令,例如使动画全屏播放,隐藏动画菜单。首先来看FScommand命令的格式:

fscommand("command","parameters")

在.NET平台应用程序中,我们就是利用的Shockwave flash控件的FSCommand()过程来完成这一通信过程,实现信息发送的功能,并且根据发送出来的不同命令及参数来实现对程序的控制。

可以看到,不仅可以在.NET平台应用程序里播放控制Flash作品,而且还可以在Flas中编写Action脚本代码来控制.NET平台应用程序的运行。由此,实现了.NET平台应用程序与Flas之间的完全交互和集成开发。

三、具体应用细节

第一步,制作Flas。此步利用FlashMX强大的设计工具,任意设计制作一个多媒体动画。

第二步,在中控制Flash的播放。打开,打开新建项目窗口,左边“项目类型”中选择“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();

这几行代码规定主窗体启动后马上加载指定的Flas文件并播放。如果有需要,可参考本文第二部分罗列出来的属性与算法,对此控件进行进一步的控制。

第三步,利用Flash控制应用程序的运行状态。在第一步中的Flas中可以加入一个按钮,设置其执行动作如下:

on(release){fscommand("ok");}

当按下按钮后,此Flash向应用程序发送出名为“ok”的命令。

回到环境中,在应用程序中的InitializeComponent方法中添加以下代码:

private void InitializeComponent()

{

……

this.axShockwaveFlash1.FSCommand+=new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEventHandler(this.axShockwaveFlash1_FSCommand);

……

最后添加如下事件处理程序:

private void axShockwaveFlash1_FSCommand(object sender,AxShockwaveFlashObjects.省略mand=="ok")

{

MessageBox.Show("应用程序接受Flas信息成功!");

this.BackColor=Color.Blue;

通过以上处理Flas传递的FSCommand函数中的信息,我们就可以在应用程序中相应Flas的命令。上面的例子中点击相应按钮,则会在应用程序中出现一个对话框,然后改变应用程序的背景颜色。

利用Flash可以制作出画面细腻,色彩艳丽的动画作品,如果再将其与强大的.NET平台相结合,可以制作出更加功能复杂的多媒体应用程序。

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

主要参考文献:

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

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

上一篇:无线局域网技术现状及前景 下一篇:浅析网络安全技术