在VS2010中添加Flash控件 vs2010 添加ocx控件

一、准备工作

第一步:下载并安装Adobe Flash Player。

从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的FlashPlayer(大约为2.66M),并安装。对于Windows32位系统,其默认安装目录为:C:WINDOWSsystem32MacromedFlash;对于64位系统,为:C:WindowsSysWOW64MacromedFlash。

Flash控件的大版本号用数字表示,如9,10,11等,小版本号用小写字母表示,如a, b, c, d,e。如我安装的版本为:Flash10l.ocx。

第二步:通过regsvr32.exe注册flash控件 Flash10l.ocx。

从开始菜单中打开运行对话框,并输入:regsvr32C:WindowsSysWOW64MacromedFlashFlash10l.ocx注册该控件(注册之后就可以在项目中进行控件添加了),如果注册成功,有如下提示:

注销控件的命令行为 regsvr32 /uC:WindowsSysWOW64MacromedFlashFlash10l.ocx。

二、新建MFC项目,添加Flash控件

第一步:建立基于对话框的MFC程序。

打开Visual Studio2010,新建项目,选择“MFC应用程序”,并将其命名为MFCFlash。

在接下来的选型设置中,选择应用程序类型为“基于对话框”,其他可按默认设置。项目建成后,程序默认添加了MFCFlash和MFCFlashDlg的头文件和实现文件,截图如下:

第二步:添加Shockwave Flash Object类。

VC++6.0中,可以使用ClassWizard添加ActiveX控件,而VS2005以后的版本没有。如果要添加ActiveX对应的类,可以“项目”→“添加类”→“ActiveX控件中的MFC类”,打开“从ActiveX控件添加类向导”对话框。选择从“文件”添加类,找到Flash控件的安装位置,即可添加ShockwaveFlash控件,接口选择“IShockwaveFlash”,以生成CShockwaveFlash类(类的名称可以修改)。插入后,VC会自动把这个类加入工程里面。

第三步:添加Shockwave Flash Object控件。

在资源视图里找到“Dialog”,并选择其中的IDD_MFCFLASH_DIALOG,在其上点右键,选择“插入ActiveX控件”,从弹出的列表中选择“ShockwaveFlash Object”。

使用BUTTON、EDIT等其它Windows控件一样,我们可以使用这个类的成员函数来操纵这个对象,来进行Flash动画的控制以及和自己的程序进行交互等操作了。在Flash控件上点右键,然后选择“添加变量”,设定“变量名”为:m_FlashPlayer。可再次在Flash控件上点右键,然后选择“属性”,将其ID改为IDC_SHOCKWAVEFLASH。

第四步:使用成员函数LoadMovie和Play来导入并播放动画。

在MFCFlashDlg.cpp文件中,找到CMFCFlashDlg::OnInitDialog()函数,在“returnTRUE”之前添加代码:

CString str =_T("E:\VS\Flash\media\test.swf");

m_FlashPlayer.LoadMovie (0, str);

m_FlashPlayer. Play ();

其中m_FlashPlayer.LoadMovie(0,str)用来将动画导入程序中,str为要播放的flash路径,要用绝对路径(注意路径用双斜杠“\”隔开);m_FlashPlayer. Play ()开始播放动画。

现在运行程序,就可以看到flash嵌入到程序里面了。还有几个常用的函数可以用来控制动画的播放,如GotoFrame(longFrameNum)可以转到FrameNum侦播放(侦数从0开始),StopPlay()可以停止播放。。。,还有很多,可以自己试试。下图是我做的一个飞行仪表,界面比较丑陋,凑合看吧^_^

三、实现MFCFlash的通信

1Flash通过FSCommand消息调用MFC

第一步:添加消息处理函数。

在Flash控件上点右键,然后选择“添加事件处理程序”,在类列表选择“CMFCFlashDlg”,消息类型选择“FSCommand”,则函数处理程序名称自动为“FSCommandShockwaveflash”。它的形式大概是这样子的:

  void CMFCFlashDlg::OnFSCommandShockwaveflash(LPCTSTR command,LPCTSTR args) ;函数有两个参数,就是flash的ActionScript中FSCommand语句中的两个参数。其实并不一定两个参数都用到,flash脚本中可以就使用一个参数,这样这边的函数就只要对第一个参数进行处理就行了。

第二步:编写消息处理代码。

在刚添加的FSCommand消息处理函数中,对两个参数进行处理。其实就是做字符串比较的操作,根据是什么字符串来判断用户进行了什么操作。大概就是这样子的:

  void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTRcommand, LPCTSTR args)
{
  // TODO: Add your control notification handler code here
  if( 0 == strcmp(command,”bt”) )
在VS2010中添加Flash控件 vs2010 添加ocx控件
  {
    if( 0 == strcmp(args,”enter”) )
    {
      MessageBox(“欢迎进入系统!”);
    }
  }
  else if( 0 == strcmp(command,”quit”) )
  {
    MessageBox(“您选择了退出!”);
    CDialog::OnCancel();
  }
}    

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

2MFC通过CallFunction函数调用Flash

第一步:Flash中ExternalInterface.addCallback用处理。

在FLASH中,要用ExternalInterface.addCallback把能被外部调用的函数注册一下,例如:ExternalInterface.addCallback("setAlt", setAlt);

function setAlt (para:String = "3150")

{

alt.text = para; //alt为swf文件中的一个动态文本

}

第二步:MFC中使用CallFunction函数传入参数。

想让MFC主动往flash传内容并且让flash响应,用控件的CallFunction方法。在MFC中,调用CallFunction方法,传入一个比较复杂的字符串,描述了要调用的函数的名称、参数等等,以XML的形式呈现。详情参考FLASH帮助的“外部API 的 XML 格式”一文。此处CallFunction传递的参数为XML格式,如下:

CString temp= _T("

3500FT

");

m_FlashPlayer.CallFunction(temp);

注意,必须是完整的一行,具体为什么我也不太清楚。再次运行程序,可以发现ALT的值已经由3280FT变成了3500FT。

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/351805.html

更多阅读

MFC中进度条控件的使用方法 mfc进度条控件使用

MFC中进度条控件的使用方法——简介进度条控件是程序开发中基础控件之一,常用于显示程序的进度。在进行程序安装、文件传输时经常用到。其用法也比较简单固定。今天就和大家分享一下其简单的使用方法吧。^_^MFC中进度条控件的使用方

如何在PPT中插入FLASH动画 ppt里怎么加flash

简介新手在制作PPT时经常会遇到这样一个问题:“怎样在PPT中插入一个FLASH动画?”小编在这里介绍几个方法,能够让你顺利在你的PPT中加入各种格式的动画,让你的PPT更加的与众不同,独领风骚。插入对象通过这个方法插入的flash动画可以直

如何下载网页中的flash动画 精 怎么把网页flash动画

如何下载网页中的flash动画 精——简介有的时候,咱在网上看到了很好的FLAHSN动画一时很想赶紧下载过来保存到电脑上,但由于平时就卸载了这类工具,同时也取消了迅雷等第三方软件园FLV嗅探功能,所以一时没有工具可以方便快捷的下载这类FLA

在Win7系统中添加打印机的方法 xp系统添加网络打印机

在Win7系统中添加打印机的方法——简介Windows7操作系统和之前用户群体庞大的WindowsXP操作系统在操作上大同小异,但是还是有些区别。对于Win7如何添加打印机,很多用户还不是很了解。这里我们做一个简单的教程,教会大家如何在Win7操作

怎么在word中添加箭头等框架流程符号? 精 流程图箭头

怎么在word中添加箭头等框架流程符号? 精——简介办公过程中经常会使用WORD工具制作文本,初入职场的你还在简单敲一堆又一堆的字儿就上交领导吗?怎样让你的文本更生动立体呢?今天小编给大家分享一下,在word文档中添加箭头框架等流程符号

声明:《在VS2010中添加Flash控件 vs2010 添加ocx控件》为网友锦书寄去分享!如侵犯到您的合法权益请联系我们删除