Posted on 2008-12-08 09:34
S.l.e!ep.¢% 阅读(837)
评论(1) 编辑 收藏 引用 所属分类:
VC
#### c++ to flash calls:
TRY
{
CString ret = m_FlashPlayer.CallFunction("<invoke name=\"FlashFunction\" returntype=\"xml\"><arguments><string> empty ?</string></arguments></invoke>");
}
CATCH(COleDispatchException, ex)
{
TCHAR szCause[255];
CString strFormatted;
ex->GetErrorMessage(szCause, 255);
strFormatted = "The program exited because of this error: ";
strFormatted += szCause;
AfxMessageBox(strFormatted);
}
END_CATCH
in Actionscrīpt now :
import flash.external.*;
ExternalInterface.addCallback("FlashFunction", this, InternalFlashFunction);
function InternalFlashFunction(str: String): String
{
play();
return"You can return a string...";
}
#### flash to c++ calls:
BEGIN_EVENTSINK_MAP(CFlashPlayerDlg, CDialog)
ON_EVENT(CFlashPlayerDlg, IDC_SHOCKWAVEFLASH1, 150, OnFSCommand, VTS_BSTR VTS_BSTR)
ON_EVENT(CFlashPlayerDlg, IDC_SHOCKWAVEFLASH1, 197, OnFlashCall, VTS_BSTR)
END_EVENTSINK_MAP()
void CFlashPlayerDlg::OnFSCommand(LPCTSTR command, LPCTSTR args)
{
AfxMessageBox(command);
}
void CFlashPlayerDlg::OnFlashCall(LPCTSTR request)
{
AfxMessageBox(request);
}
in Actionscrīpt :
fscommand("ChangeText", textInput_txt.text);
flash.external.ExternalInterface.call("GetContacts");