MFC与flash交互



Vc与Flash通信分为两部分,1、flash动画告诉我们什么。2、我们告诉Flash什么。 

1.使用FSCommand(command,args)向Flash外部发送消息。

FSCommand(command,args)的两个参数都是任意字符串,比如用户按下flash动画的一个按钮就发送FSCommand("bt","bt1")这样一个消息,按下另一个按钮发送FSCommand("bt","bt2"),而我们的程序收到FSCommand消息后就对通过两个参数的不同字符串来判断用户按下的是哪个按钮。 
原理就是这样子的,要实现的话就得在flash动画中使用FSCommand发送消息,在我们的程序接收和处理FSCommand消息了。我们做一个简单的例子。

首先:用flash画一个按钮和文本框(输入文本框名为tt,按钮名为a)大笑flash界面有点丑,仅用来示意!!!


选中按钮元件,右键动作,加入如下代码

on(release)
{
 fscommand("bt",tt.text);
}

导出影片,命名5.swf。

然后:编写vc代码

1.新建一个MFC对话框应用程序showflash

2.添加shockwaveflashobject控件,并生成一个该控件的对象。假设关联的对象名为FlashUI.

MFC界面如下:


3.响应按钮OpenFlash

void CShowFlashDlg::OnBnClickedOpenFlash()
{
 // TODO: Add your control notification handler code here
 CString filename;
 CFileDialog fileopen(TRUE);
 if (IDOK==fileopen.DoModal())
 {
  filename=fileopen.GetPathName();
  flashUI.LoadMovie(0,filename);
  flashUI.Play();
 }
}


注:这里的打开没有限定一定只能试swf格式文件。你可以直接从你电脑上选择swf文件

4.响应fscommand事件

void CShowFlashDlg::FSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args)
{
 // TODO: Add your message handler code here
 CString str;
 str.Format("command=%s args=%s",command,args);//简单的消息传递机制
 MessageBox(str);

 int x=atoi(flashUI.GetVariable("_root.tt.text"));//将输入文本的数值传给vc;
 CString DL_x;
 DL_x.Format("%d",x);
 MessageBox(DL_x);
 flashUI.SetVariable("_root.a._y",DL_x);//根据输入文本的数据调整按钮位置

}

在文本框中输入:2

然后点击蓝色空间后的效果图


响应 str.Format("command=%s args=%s",command,args);//简单的消息传递机制
 MessageBox(str);



 int x=atoi(flashUI.GetVariable("_root.tt.text"));//将输入文本的数值传给vc;
 CString DL_x;
 DL_x.Format("%d",x);
 MessageBox(DL_x);//消息盒子显示输入文本中的值



 flashUI.SetVariable("_root.a._y",DL_x);//根据输入文本的数据调整按钮位置

由下图可以看出蓝色按钮的位置移动了。







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值