研究Flash嵌入遊戲中的可行性.......javascript
- 渲染問題已解決
- 事件響應已解決
- 下面是C++與Flash AS的交互, 以MFC爲例:
1. 新建一個MFC Dialog程序java
2. 添加一個Flash控件c++
3. 把Flash控件添加一個變量web
4. 在OnInitDialog()中添加載.swf文件app
-
-
- BOOL CCppFlashDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
-
-
- SetIcon(m_hIcon, TRUE);
- SetIcon(m_hIcon, FALSE);
-
-
- this->flashUI.LoadMovie(0, "C://Documents and Settings//Administrator//My Documents//My Flash//HelloWorld.swf");
- return TRUE;
- }
5. 製做一個flash, 放一個Button上去, 導出一下就能夠在MFC中看到了框架
6. flash調用C++.ide
這個很簡單, 在flash的那個Button組件的動做中添加腳本:函數
- on(click)
- {
- fscommand("MsgBox", "這是flash調用c++的響應");
- }
而後在MFC中添加事件響應:oop
- void CCppFlashDlg::FSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args)
- {
-
- if (0 == strcmp("MsgBox", command))
- {
- MessageBox(args);
- }
- }
7. C++調用Flash.this
首先在Flash中註冊回調函數:
- import mx.controls.Alert;
- import flash.external.*;
-
- ExternalInterface.addCallback("MsgBox", this, MsgBox);
-
- function MsgBox(msg:String)
- {
- Alert.show(msg, "",Alert.OK);
- }
而後在C++中添加調用:
- void CCppFlashDlg::OnOK()
- {
-
- this->flashUI.CallFunction("/
- <invoke name=/"MsgBox/">/
- <arguments>/
- <string>這是C++調用flash的響應</string>/
- </arguments>/
- </invoke>");
- }
另外, 還能夠經過GetVariable()和SetVariable()來設置flash中定義的變量
8. 導出一下flash, 編譯一下C++, 就能夠看到效果了: