是否有一种方式来运行的SWF文件(不使用浏览器)使用C++? 我需要启动一个swf游戏并传递一些参数以便正确加载。我有一个win32应用程序。在我的应用程序中使用按钮,我需要启动游戏。我将不胜感激任何帮助。谢谢。播放SWF游戏
顺便说一句,我使用cocos2dx我的UI。 (也许这些信息可以帮助)
是否有一种方式来运行的SWF文件(不使用浏览器)使用C++? 我需要启动一个swf游戏并传递一些参数以便正确加载。我有一个win32应用程序。在我的应用程序中使用按钮,我需要启动游戏。我将不胜感激任何帮助。谢谢。播放SWF游戏
顺便说一句,我使用cocos2dx我的UI。 (也许这些信息可以帮助)
如果您只需要使用正确的参数启动swf游戏,那么最可能的方式是使用exec
,然后运行Flash Standalone Player。这将在其自己的窗口中播放Flash电影。另外,加载Flash Browser插件的NPAPI版本并不难,并且允许您在Cocos2d-x应用程序中嵌入Flash游戏,假设您高兴地窃听Cocos2d-x代码足以让您的Windows'OS窗口句柄。
第三种方法是加载控件的ActiveX版本,但这只是一个可怕的技术,需要您的应用程序具有管理权限才能安装该控件(如果它尚未安装)。
独立和玩家NPAPI可以捆绑,并从你的应用程序直接使用。
编辑:出于某种原因,我认为exec
是一个标准的C函数,但它似乎没有真正如此。因此,启动闪光灯独立播放器使用CreateProcess
命令行是这样的:
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);
}
嗨克里斯。感谢您的回答。 如果我想使用第一个选项,你有教程我可以跟随/阅读,所以我可以得到一个开始?我是所有这些人的新手,我会很感激所有我能得到的帮助。非常感谢。 – cessmestreet
我已经添加了一个使用CreateProcess的示例。 'exec'并不完全是启动我认为的流程的标准方式。 –
启动Flash播放器会非常麻烦 - 除非您只针对您的机器。大多数用户不会安装独立的Flash播放器,可执行文件的名称可能不是这个答案给出的名称 - 它会根据版本进行更改 - 例如。我的是flashplayer_17_sa_debug.exe)。您也无权在线分发。 – MuertoExcobito
如果要嵌入播放SWF到你的应用程序,而无需使用任何类型的浏览器,你需要嵌入Flash运行时为您的应用程序。 Scaleform可能是最着名的第三方Flash运行时,并且具有C++接口。
谢谢你,但这需要我使用另一个工作室,对吧?我希望能找到像我可以使用的库或命令或类似的东西。但无论如何,谢谢。 – cessmestreet
只有运行时 - 你需要以某种方式来创建你的资产 - 通常不过的Flash工作室,虽然你可以使用Flash开发,以及其他工具。但是,从你的问题,这听起来像你已经拥有你想要一个SWF文件播放 - 在这种情况下,你只需要在Scaleform的库(或其他Flash运行时)整合,并发挥你的资产。 – MuertoExcobito
你好@ @ muertoexcobito谢谢你的快速回复。我对scaleform库不熟悉,你能指点我一个很好的教程或指导吗?我很想看看它并尝试一下。非常感谢你:) – cessmestreet
运行它在任何浏览器状的部分?像QT中的QWebView一样。如果是Windows - 可能你可以使用IWebBrowser2 – Starl1ght
将IWebBrowser启动一个新窗口吗?它是一个弹出窗口?对不起,我没有使用过IWebBrowser2。 – cessmestreet