利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。

  我们分为两步来走:

  一、将flash动画嵌入自己的程序中,这一点比较简单,使用shockwave flash object控件就可以实现。这个控件在安装flash的时候就装到你的系统上了,flash5.0以下的文件名是swflash.ocx,5.0以上版本的名字是flash.ocx,在系统目录里面应该可以找得到;

  二、在flash动画和自己的程序中传递消息进行交互。这一点也是要通过控件来实现,不过得在flash动画和自己的程序中做些处理。

下面我们来具体说明操作过程:

一、将flash动画嵌入自己的程序中。所有在windows平台上的支持ocx控件的软件开发工具都可以做到这一点。我使用的是vc++6.0,就以这个的做法来介绍。

  1、检查你的系统上是否有shockwave flash object控件并已注册。如果你的系统上装有flash,则就有这个控件,否则的话,可以到网上下载一个过来安装。
  2、新建一个MFC对话框应用程序,假设命名为PlayFlash。
  3、添加shockwave flash object控件。建立对话框应用程序后,在主菜单里选择“工程->添加工程->components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。在里面选择shockwave flash object(如果你系统上没这个控件,这里面就找不到了,可以去download个下来安装),点击insert将它插入工程。因为在vc中插入工程的控件要通过一个类来操作,所以这时vc会提示你为这个控件指定一个类名,可以使用默认的类名就行了。插入后vc会自动把这个类加入工程里面。
  4、生成一个该控件的对象。将shockwave flash object控件成功插入自己的工程后,在vc对话框编辑器的controls面板上就会多出图标,这个图标就是刚加入的控件的图标了。呵,这样接下来怎么用就再清楚不过了吧。和使用BUTTON、EDIT等其它windows控件一样,把它拉到对话框上,给它关联一个对象,对象的类就是我们刚才插入控件的时候所产生的类。我们可以使用这个类的成员函数来操纵这个对象,来进行flash动画的控制以及和自己的程序进行交互等操作了。这里假设关联的对象名为:m_FlashPlayer。
  5、使用成员函数LoadMovie和Play来导入并播放动画。
m_FlashPlayer.LoadMovie(0, strMovieUrl);该函数用来将动画导入程序中,strMovieUrl为要播放的flash路径,要用绝对路径。 m_FlashPlayer.Play();调用该函数开始播放动画。在初始化对话框的函数里面加入这两个函数调用即可。
  怎么样,现在运行程序,看到flash嵌入到你的程序里面了吧。还有几个常用的函数可以用来控制动画的播放,如GotoFrame(long FrameNum)可以转到FrameNum侦播放(侦数从0开始),StopPlay()可以停止播放。。。,还有很多,可以自己试试^_^。下面我们要介绍如果进行交互性的控制了。

二、在flash动画和自己的程序中传递消息进行交互。

把flash嵌入自己的程序后,用户在flash动画上面操作,想知道用户进行了什么操作,就得让flash动画来告诉我们了。做过flash的人应该知道flash的动作脚本语言:Action Script。里面有个命令叫FSCommand(command,args);我们就是要通过这个命令向外部发送消息的。这个命令有两个参数,都是字符串,你可以在flash脚本中指定任意的字符串。比如用户按下flash动画的一个按钮就发送FSCommand("bt","bt1")这样一个消息,按下另一个按钮发送FSCommand("bt","bt2"),而我们的程序收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下的是哪个按钮。
原理就是这样子的,要实现的话就得在flash动画中使用FSCommand发送消息,在我们的程序接收和处理FSCommand消息了。flash部分的就不讲了。那我们的程序如何才能接收这个消息呢?前面我们讲到,shockwave flash object插入我们的程序后就可以象一个普通的windows控件那样使用它了。要让它接收并处理这个消息当然是使用MFC的类向导进行消息映射了。做法如下:
  1、添加消息处理函数。 在主菜单中选择“查看->类向导”,在弹出的对话框中选择消息映射,在左边的列表框中选择我们刚插入程序的shockwave flash object控件id,右边选择FSCommand, 点击AddFunction,这样就添加了一个FSCommand消息处理函数了。它的形式大概是这样子的:
void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) ;函数有两个参数,就是flash的Action SCript中FSCommand语句中的两个参数。其实并不一定两个参数都用到,flash脚本中可以就使用一个参数,这样这边的函数就只要对第一个参数进行处理就行了。
  2、编写消息处理代码。 在刚添加的FSCommand消息处理函数中,对两个参数进行处理。其实就是做字符串比较的操作,根据是什么字符串来判断用户进行了什么操作。大概就是这样子的:

void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args)
{// TODO: Add your control notification handler code hereif( 0 == strcmp(command,"bt") ){if( 0 == strcmp(args,"enter") ){MessageBox("欢迎进入系统!");}}else if( 0 == strcmp(command,"quit") ){MessageBox("您选择了退出!");CDialog::OnCancel();}
} 

  这只是最简单的处理形式,当然你可以在flash中发送复杂的字符串,在这边就要进行更多的处理了。

三、设置和读取flash动画中的变量。

shockwave flash object还提供了两个进行交互的函数,一个是CString GetVariable(LPCTSTR name),用来获得flash动画中变量name的值,该值以CString的形式返回给调用者;一个是void SetVariable(LPCTSTR name, LPCTSTR value),可以用来将flash动画中的name变量设置一个值value。 
使用以上介绍的几个函数就可以在我们的程序和flash动画间进行很好的交互了,shockwave flash object控件还提供了其它很多函数

VC播放FLASH动画相关推荐

  1. VC++播放Flash

    Visual C++实现Flash动画播放 要: 本文通过在VC中将外部swf格式文件内嵌为VC的内部资源,使其在程序运行过程中从资源动态释放到临时文件,从而实现VC对Flash动画的播放. 引言 F ...

  2. WPF中播放Flash动画

    WPF本身不直接支持播放Flash动画,需要做点"设计",下面是示例(嵌入WPF窗口播放). 1.首先在VS2010中建立项目.打开VS2010后选择"文件"- ...

  3. 在Powerbuilder中播放Flash动画

    在Powerbuilder中播放Flash动画. w_flash.ole_1.object.movie=gs_apppath+"\pic1\泵.swf" w_flash.ole_1 ...

  4. C#播放flash动画即swf文件

    2019独角兽企业重金招聘Python工程师标准>>> 1.工具箱上点鼠标右键,出现菜单,选择 "选择项.",在出现的窗口选择"COM组建"选 ...

  5. 如何用VB编写FLASH动画播放器

    用VB编写FLASH动画播放器              Flash4是MacroMedia公司出品的矢量动画创作专业软件,利用该软件制作的矢量动画具有文件体积小.带音效和兼容性好等特点.那么,你想不 ...

  6. HTML页面插入Flash动画及背景音乐

    HTML页面插入Flash动画及背景音乐 js操作Flash对象的常用方法简介 注:对flash对象操作的方法名首字母都大写. Flash提供给javascript可以访问的标准方法有: 1)GetV ...

  7. 计算机无法播放flash,Windows10系统电脑无法播放Falsh动画的解决方法

    Windows10系统 电脑无法播放Falsh动画怎么办呢?这是最近不少用户都向小编咨询的问题.他们表示Win10电脑系统中Flash插件杀毒软件修改后,就出现了不能播放Falsh动画的情况.接下来, ...

  8. Flash动画文件在PowerPoint中不能正常播放

    Flash动画文件在PowerPoint中不能正常播放 一.背景 1.教学背景   在线课程制作过程中,需要使用较多符号.方程式.实验装置图和物质的三维模型,但是由于多数教育工作者的计算机水平普遍有限 ...

  9. html swf取消自动播放,flash(swf)动画结束后关闭html页面

    我已将Flash文件发布到html页面.一旦Flash动画结束,我将如何自动关闭此页面.我可以通过actionscript告诉flash停止,但是我需要整个页面自动关闭.flash(swf)动画结束后 ...

最新文章

  1. LeetCode Find All Duplicates in an Array
  2. 单例模式存在的问题——破坏单例模式,序列化和反射
  3. 整合rpc远程调用_远程过程调用(RPC)
  4. oracle ebs 数据源,Oracle EBS环境下查找数据源(Form篇)
  5. 带你自学Python系列(九):input函数和程序循环四维导图导图
  6. 【python】 邮件发送-----zmail
  7. 适用于IE浏览器及非IE浏览器的xmlhttp脚本
  8. python是什么 自学-python自学需要什么软件?
  9. django models
  10. nginx服务无法停止(Windows)
  11. 压力焊2021年焊工作业考试题库
  12. Pascal VOC Dataset 下载地址
  13. php 转换中文乱码,解决php中文乱码转换问题
  14. linux串口结构termios,Termios--串口设置
  15. Python黑客帝国装逼代码
  16. [渝粤教育] 三江学院 财务管理 参考 资料
  17. c语言健康指数,C-AHI——中国汽车健康指数
  18. fagor后处理格式_输出格式
  19. Spring - InstantiationAwareBeanPostProcessor 扩展接口
  20. Win10添加开机自动运行软件三种方法(亲测可用)

热门文章

  1. 微型计算机的内部结构是由,微型计算机的内部结构.ppt
  2. CSS基础 - 内部样式表
  3. H3C——杭州华三通信技术有限公司
  4. html添加按钮语句,快速入门:添加按钮 (HTML)
  5. 通过Docker安装Fate 1.7.0
  6. 精彩回顾:2020年自动化软件测试质量峰会
  7. OpenJDK 6b19现在可用
  8. 一级分类和二级分类的要点
  9. Waymo说Uber偷了他们的无人驾驶机密,并把Uber告上了法庭
  10. 机器学习+深度学习笔记(9.5更新~)