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