c++ & flash 通信

#### c++ to flash calls:
TRY
{
	CString ret = m_FlashPlayer.CallFunction("<invoke name=\"FlashFunction\" returntype=\"xml\"><arguments><string> empty ?</string></arguments></invoke>");
	//AfxMessageBox(ret);
}
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)
    //{{AFX_EVENTSINK_MAP(CFlashPlayerDlg)
	ON_EVENT(CFlashPlayerDlg, IDC_SHOCKWAVEFLASH1, 150/* FSCommand */, OnFSCommand, VTS_BSTR VTS_BSTR)
	ON_EVENT(CFlashPlayerDlg, IDC_SHOCKWAVEFLASH1, 197/* FlashCall */, OnFlashCall, VTS_BSTR)
	//}}AFX_EVENTSINK_MAP
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); // for fscommand// or

flash.external.ExternalInterface.call("GetContacts"); // flash call

你可能感兴趣的:(c++ & flash 通信)