MFC如何调用Flash

如题所述

首先是在MFC中增加flash控件:就是shockwave flash object控件,现在一般电脑都有装flash的,所以这个都有。“建立对话框应用程序后,在主菜单里选择“工程-添加工程-components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。在里面选择shockwaveflash 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();调用该函数开始播放动画。在初始化对话框的函数里面加入这两个函数调用即可。上面三段来自网络..上面的说明,已经能在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格式,如下:FullScreen为flash里边的外部函数接口,此处并无参数,且无返回类型
温馨提示:答案为网友推荐,仅供参考