今天弄了一下VC++,嘗試使用flash,不錯(cuò),至少可以兩個(gè)家伙進(jìn)行通信。
VC的做法:
1 添加一個(gè)控件 shockwave flash
2 添加fscommand指令接收
3 添加調(diào)用flash內(nèi)部函數(shù)的方法
Flash的做法:
1 添加腳本顯示效果
2 添加fscommand測(cè)試
3 添加可以提供外部調(diào)用的函數(shù)
代碼如下,可以提供參考:
Flash代碼:
import flash.external.*;
ExternalInterface.addCallback("CallMeFromApplication", this, InternalFunction);
function InternalFunction(str:String):String {
a_txt.text = str;
return Array("test", "testsdf");
return "The function was called successfully";
}
//
var a_str:String = "test";
a_txt.text = gggg;
fscommand("ffff", "sdfsdf");
//FlashCall("test");
a_btn.onRelease = function() {
a_txt.text = gggg;
};
ExternalInterface.addCallback("CallMeFromApplication", this, InternalFunction);
function InternalFunction(str:String):String {
a_txt.text = str;
return Array("test", "testsdf");
return "The function was called successfully";
}
//
var a_str:String = "test";
a_txt.text = gggg;
fscommand("ffff", "sdfsdf");
//FlashCall("test");
a_btn.onRelease = function() {
a_txt.text = gggg;
};
VC++代碼:
void CflashDlg::FSCommandShockwaveflash2(LPCTSTR command, LPCTSTR args)
{
// TODO: 在此處添加消息處理程序代碼
MessageBox(command);
flash_movie.SetVariable("gggg","test");
//((CShockwaveflash2*)GetDlgItem(IDC_SHOCKWAVEFLASH2))->SetVariable("gggg","test");
CString test;
test=flash_movie.CallFunction("<invoke name="CallMeFromApplication"><arguments><string>Some text for TFlashPlayerControl</string> </arguments></invoke>");
MessageBox(test);
}
{
// TODO: 在此處添加消息處理程序代碼
MessageBox(command);
flash_movie.SetVariable("gggg","test");
//((CShockwaveflash2*)GetDlgItem(IDC_SHOCKWAVEFLASH2))->SetVariable("gggg","test");
CString test;
test=flash_movie.CallFunction("<invoke name="CallMeFromApplication"><arguments><string>Some text for TFlashPlayerControl</string> </arguments></invoke>");
MessageBox(test);
}
大家試試啊~~
可以通信后那就啥事都可以做了。
還是逍遙劍客寫的這個(gè)比較好看,與MFC結(jié)合,手把手教,就算不會(huì)MFC也沒問(wèn)題,看了對(duì)GFx的認(rèn)識(shí)更上一層。
C++與Flash的交互