最近要用Flash做程序界面,所以研究了下如何在MFC下调用flash,其他开发工具也差不多的,flash会提供统一的外部API接口。

//--------------------------------------------------------------------------------

首先是在MFC中增加flash控件:就是shockwave flash object控件,现在一般电脑都有装flash的,所以这个都有。“建立对话框应用程序后,在主菜单里选择“工程->添加工程->components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。在里面选择shockwave flash object(如果你系统上没这个控件,这里面就找不到了,可以去download个下来安装),点击insert将它插入工程。因为在vc中插入工程的控件要通过一个类来操作,所以这时vc会提示你为这个控件指定一个类名,可以使用默认的类名就行了。插入后vc会自动把这个类加入工程里面。”如果已经装了flash但是registered activex controls里边没找到,说明没注册,貌似装个flash开发工具就可以了..

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()可以停止播放。。。,还有很多,可以自己试试^_^。下面我们要介绍如果进行交互性的控制了。

上面三段来自网络..上面的说明,已经能在MFC中实现播放flash了,但是实现交互还是不行。

实现与flash交互,有两种方法,1:模拟鼠标点击事件,就是控制鼠标去点击flash(我同学说他睡觉时想到的,而且真的能实现,服了!) 2、是要flash提供接口,这就需要有flash的源码,然后自己修改,增加外部函数接口。以下来自百度知道,照里边做,就可以实现外部接口:

MFC可以直接设置和得到flash中的变量。调用控件的GetVariable方法和SetVariable方法现。

想让flash主动往MFC传内容并且让MFC程序响应,可以在flash中调用fscommand函数,把内容传出去。此时MFC会收到控件的FSCommand事件和内容,就可以用MFC处理了。

想让MFC主动往flash传内容并且让flash响应,用控件的CallFunction方法。
想用这种方法需要先干一些事情:
在FLASH中,要用ExternalInterface.addCallback把能被外部调用的函数注册一下,例如:
import   flash.external.ExternalInterface;    
ExternalInterface.addCallback("theFunctionToCall", null, theFunctionToCall);
function theFunctionToCall()
{
//...
}
在MFC中,调用CallFunction方法,传入一个比较复杂的字符串,描述了要调用的函数的名称、参数等等,以XML的形式呈现。详情参考FLASH帮助的“外部 API 的 XML 格式”一文。

详情可以参考FLASH帮助里的“使用 ExternalInterface 类”的文章。
//--------------------------------------------------------------------------------

注意,此处CallFunction传递的参数为XML格式,如下:
m_flash.CallFunction(_T("<invoke name=\"FullScreen\" returntype=\"xml\">\<arguments></arguments>\</invoke>"));
FullScreen为flash里边的外部函数接口,此处并无参数,且无返回类型

MFC如何调用Flash相关推荐

  1. MFC如何调用Flash控件

    新项目中需要在mfc框架中播放swf,因此决定使用flash控件: 第一步:在本机安装flash10 Flash activex控件一般安装在用户系统目录下:C:\WINDOWS\system32\M ...

  2. MFC中使用FLASH相关

    2019独角兽企业重金招聘Python工程师标准>>> 一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe.com/ ...

  3. 如何在MFC中调用CUDA

    如何在MFC中调用CUDA 有时候,我们需要在比较大的项目中调用CUDA,这就涉及到MFC+CUDA的环境配置问题,以矩阵相乘为例,在MFC中调用CUDA程序.我们参考罗振东iylzd@163.com ...

  4. Halcon初学者知识 【13】如何在MFC中调用Halcon代码

    要知道如何在MFC中调用Halcon代码,需要以下知识点: 在VC++2019的工程中,配置Halcon环境[请看此文] Halcon代码如何导出成C++代码 如何拆解halcon转换成C++的代码, ...

  5. 如何在MFC客户端调用COM DLL

    也许有人会认为这是一个非常小儿科的问题.不过,我还是颇花费了一点时间和精力才搞清楚的.OK, 下面简单谈一下如何去做. 可以有很多方法生成一个COM DLL.比如,VB, VC++, DELPHI等等 ...

  6. javascript调用Flash里对象的方法(函数)搞了五个小时。

    搞了几个小时后,才发现,之前走的路是错的. 今天在Firefox浏览器上测试一个javascript调用Flash中的一个对象的方法时遇到问题了, 一搞就整整搞了一个下午. 我记得之前我用Flash8 ...

  7. ATL--创建简单的ATL之dll工程,添加类和类的接口并在MFC中调用

    资源打包 开发环境 Windows Server 2012 VS2010 Sp1 番茄助手 创建ATL简单dll工程 1.打开VS2010,新建ATL COM 项目,步骤:"文件" ...

  8. MFC/C++调用易语言的整数型+文本型与VS2010互动

    MFC/C++调用易语言的整数型+文本型与VS2010互动 版权说明:转载请注明,转自郑军学长(MFC/C++调用易语言的整数型+文本型与VS2010互动),http://www.cnblogs.co ...

  9. C#中调用Flash按钮,点击按钮可打开相应的功能

    1.制作一个FLASH按钮,并在按钮上添加如下代码: on (release) { fscommand ("Send Action"); } 2.生成swf文件 3.在FLASH控 ...

最新文章

  1. 薏米红豆粥的功效和实践演示
  2. Ubuntu中文输入法崩溃问题(候选框乱码)
  3. 函数式编程Map()Reduce()
  4. Java 序列化的一些简 单总结
  5. SQL解析之硬解析和软解析
  6. iNeuOS工业互联网操作系统,提升分布式云端控制安全策略和增加实时日志功能...
  7. SpringCloud Sleuth分布式请求链路追踪
  8. request获取各种路径总结、页面跳转总结。
  9. mysql gdb 调试 参数_gdb调试带参数程序
  10. Java基础之路--引用数据类型之数组
  11. 关于XML序列化与CultureInfo
  12. linux登录日志保存多久,Centos清除系统日志和登录记录-Linux清除系统日志和登录记录的方法-吾爱编程网...
  13. git提交代码到github
  14. 归并排序JAVA实现(详解)
  15. 武田宣布美国FDA授予ALUNBRIG® (brigatinib)作为ALK+转移性非小细胞肺癌一线治疗的补充新药申请优先审理
  16. 从 拼多多 到 抖音
  17. Java问题---扑克牌
  18. 约翰霍普金斯大学计算机博士收入,约翰霍普金斯大学计算机科学研究生项目详情!...
  19. 单片机问题,24V NPN接近开关信号,怎么接入到单片机
  20. python泰坦尼克号数据预测_泰坦尼克号幸存者预测 python 详解

热门文章

  1. 服务器重装ie浏览器,window7系统如何重装IE浏览器|Win7系统IE浏览器出现Automation错误怎么解决?...
  2. 公司电脑usb被禁用,如何重新启用usb功能?
  3. stop the bibi
  4. HTML中长按图片下载
  5. with app.app_context(). See the documentation for more information.
  6. WebKit介绍及总结(二)
  7. Windows 同一时候开启核心显卡与独立显卡(不接显示器启动核芯显卡)
  8. 豪华外观与优质内涵——2019款奔驰C级评测
  9. drupal theme概述
  10. 七、.net core(.NET 6)使用Serilog进行配置和实现日志记录