http://hi.baidu.com/nbcsss/blog/item/41dd2dd4fb81d8cc50da4b45.html/cmtid/fc35b10001be7eda277fb509
最近對flash與vc之間的通信進行了一下簡單的研究,有一下感慨在這里記錄下。
首先推薦一個網址在VC中使用 Flash 美化你的程序
個人認為該文章對flash與mfc直接的通信的介紹說明的比較詳細 特別是flash運用FSCommand(command,args);發送數據和mfc端運用void CPlayFlashDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) ;進行消息響應的的操作過程說明的非常詳細值得收藏。
在這里我想對它mfc與flash通信的過程做一個補充。
對于一個從c語言入手的程序員來說在初學CShockwaveFlash時經常對mfc與flash通信會產生疑問,不知道在flash中該怎么寫代碼,而通過百度或者谷歌搜索出來的結果很難令人滿意,我也因為這個迷惑了很長的時間。
其實應該說用CShockwaveFlash進行vc與flash通信實在是太簡單了,以至于高手們都不屑寫。
CString GetVariable(LPCTSTR name)和void SetVariable(LPCTSTR name, LPCTSTR value)這兩個函數是通信的關鍵,你要是英文比較好應該會很快知道Variable是變量的意思。知道了這些問題應該會變的很簡單,flash中只需要定義一個變量比如說var y。你就可以通過GetVariable(“y”);來獲取y在flash中的值,用SetVariable("y", "abc");來把flash中y的值設置成abc;(注:必須用字符串"y",否則如果用GetVariable(y)mfc會提示沒有定義y是個什么東西,還有就是flash端寫的時候也要小心很容易就讓系統會再次定義一個新的變量,具體的可以參考flash的手冊),當然你也可以用SetVariable("_root.car._x", "123"); 來設置你car實例的x坐標,很簡單把,要不你也來試試。
特別說明下,MFC在調用ACTIVEX控件自動在BOOL ***App::InitInstance()調用了函數AfxEnableControlContainer();如果你用其他的工程形式如LIBUIDK就要自行在相應位置加入AfxEnableControlContainer();不然會有非法讀寫的錯誤。