S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

c++ & flash 通信

Posted on 2008-12-08 09:34 S.l.e!ep.¢% 阅读(833) 评论(1)  编辑 收藏 引用 所属分类: VC
#### 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

Feedback

# re: c++ & flash 通信  回复  更多评论   

2008-12-08 11:42 by RichardHe
有意思!好好研究下!

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理