研究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++, 就能够看到效果了:

