目录
1、代码:MFC编写发送命令给Flash,回调AS3中被注册过的函数
1、下面是我测试的,尝试MFC中FastFlashArg控制发送几个对象给Flash
一、目的:
1、想使用and标准库时候,将flash和mfc交互
二、参考:
1、安达标准库使用方法
三、操作:MFC给Flash发送消息
1、运行效果:
①mfc打开Flash时候,Text文本框中是设置的初始字符串,然后按下了数字键上面的0按键,MFC给Flash传递了消息,flash里面的文本框内容就变了。
①按键前
①按键后
1、代码:Flash编写外部调用
①再FLash中需要将回调函数写在初始化里面
①代码的意思:外部接口,第一个参数:传递进来的命令文字;第二个参数:启用的函数
import flash.external.ExternalInterface;
//注册MFC给Flash发送消息
//指示此播放器是否位于提供外部接口的容器中
if (ExternalInterface.available)
{
ExternalInterface.addCallback("MFC2FlashSingal",MFC2FlashSingal);
}
①flash中接受MFC发送的消息
//得到MFC信号
function MFC2FlashSingal(_string:String,_e:int,_bool:Boolean)
{
switch (_string)
{
case "ASD" :
text0.text="MFC2FlashSingal第0个参数:"+_string;
break;
}
var tmp:int=int(_e);
switch (tmp)
{
case 1 :
text1.text="MFC2FlashSingal第1个参数:"+tmp;
break;
}
switch (_bool)
{
case true :
text2.text="MFC2FlashSingal第2个参数:true";
break;
case false :
text2.text="MFC2FlashSingal第2个参数:false";
break;
}
}
1、Flash做了文本框进行查看MFC是否发送消息成功
①三个文本框分别叫做text0 text1 text2
1、代码:MFC编写发送命令给Flash,回调AS3中被注册过的函数
①为了检测我会使用MFC的按键检测的发送的命令
②在初始化中注册这个命令函数
③我发送的命令其中有3个参数和0个参数,这个自己可以决定参数的多少
BOOL CFlashAndVideoDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message== WM_KEYUP)
{
switch(pMsg->wParam)
{
case 0+48:
{
//给Flash发送消息:
FastFlashArg argv[3]={"ASD",1,true}; //3个参数
FastFlashCallFunction(m_tFlash.pFlash,"MFC2FlashSingal",argv,3);
//FastFlashCallFunction(m_tFlash.pFlash,"MFC2FlashSingal",NULL,0); //0个参数
//if (FastVlcGetSourceIndex(m_tVlc[0].pVlc)!=1)
//{
// FastVlcPlay(m_tVlc[0].pVlc,1);
//}
}
break;
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
1、下面是我测试的,尝试MFC中FastFlashArg控制发送几个对象给Flash
①下面是我当时在MFC写FastFlashArg对象结构体时候出现的总结
https://blog.csdn.net/qq_40544338/article/details/106002581
1、Flash中接受0个参数
①flash中
①MFC中
1、Flash中接受1个参数
①flash中
①MFC中
1、Flash中接受3个参数
①flash中
①MFC中
三、操作:Flash给MFC发送消息
1、flash代码
if (isCanFscommand==1)
{
fscommand("fs","heiYeHou");
}
1、MFC相应Flash消息
FastFlashRegeditFSCommand(m_tFlash.pFlash,CallBackFSCommand,this);
void CallBackFSCommand(void* pExample, const char* command, const char* args)
{
CFlashAndVideoDlg *pThis=(CFlashAndVideoDlg *) pExample;
if (strcmp(command,"fs")==0)
{
if (strcmp(args,"button01")==0)
{
int a=0;
}
}
}