使用c++玩swf游戏

Play swf game using c++

本文关键字:游戏 swf c++ 使用      更新时间:2023-10-16

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

顺便说一下,我的UI使用的是cocos2dx。(也许这些信息会有所帮助)

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

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

否则,加载Flash Browser插件的NPAPI版本并不太困难,并且可以将Flash游戏嵌入到Cocos2d-x应用程序中,假设你很乐意破解Cocos2d-x代码以获得windows的操作系统窗口句柄。

第三种方法是加载ActiveX版本的控件,但这只是一种可怕的技术,如果控件尚未安装,则需要您的应用程序具有管理权限才能安装该控件。

独立和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);
}