使用c ++玩swf游戏

时间:2015-12-18 10:08:47

标签: c++ visual-studio flash cocos2d-x

有没有办法使用C ++运行swf文件(不使用浏览器)? 我需要启动一个swf游戏并传递一些参数以便正确加载。我有一个win32应用程序。使用我的应用程序中的按钮,我需要启动游戏。我将不胜感激任何帮助。感谢。

顺便说一下,我正在为我的UI使用cocos2dx。 (也许这些信息可以提供帮助)

2 个答案:

答案 0 :(得分:1)

如果您想在不使用任何类型的浏览器的情况下将播放的SWF嵌入到您的应用程序中,您需要在应用程序中嵌入Flash运行时。 Scaleform可能是最着名的第三方Flash运行时,并且具有C ++接口。

答案 1 :(得分:0)

如果您只需要使用正确的参数启动swf游戏,那么最常用的跨平台方式可能是使用exec,然后运行Flash Standalone Player。这将在自己的窗口中播放flash影片。

否则,加载Flash浏览器插件的NPAPI版本并不太困难,并允许您在您的Cocos2d-x应用程序中嵌入Flash游戏,假设您很高兴黑客攻击Cocos2d-x代码让你的Windows操作系统窗口处理。

第三种方法是加载控件的ActiveX版本,但这只是一种可怕的技术,并且要求你的应用程序具有管理权限来安装控件(如​​果尚未安装)。

可以直接在您的应用中捆绑和使用Standalone和NPAPI播放器。

编辑:出于某种原因,我认为exec是一个标准的C函数,但实际上似乎并非如此。因此,使用CreateProcess使用命令行启动Flash独立播放器将如下所示:

LPCTSTR pathToFlashPlayer = TEXT(".\\bin\\flashplayer18_sa_win_32.exe");
LPCTSTR pathToSwf = TEXT(".\\res\\content.swf");

STARTUPINFO si = { sizeof(si), 0 };
PROCESS_INFORMATION pi = { 0 };
auto success = CreateProcess(
  pathToFlashPlayer,
  pathToSwf,
  NULL, NULL, FALSE, 0, NULL, NULL,
  &si, &pi);
if(success){
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
}