有没有办法使用C ++运行swf文件(不使用浏览器)? 我需要启动一个swf游戏并传递一些参数以便正确加载。我有一个win32应用程序。使用我的应用程序中的按钮,我需要启动游戏。我将不胜感激任何帮助。感谢。
顺便说一下,我正在为我的UI使用cocos2dx。 (也许这些信息可以提供帮助)
答案 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);
}