【发布时间】:2014-02-12 18:35:09
【问题描述】:
- 我加载 Flash Player (NPSWF32_12_0_0_44.dll)
- 下载html页面并获取
- 创建实例(使用
- 处理
NPN_GetUserAgent(我使用我的应用名称作为代理名称)和NPN_GetValue调用(提供HWND 并将私有模式设置为false)。
问题: Flash Player 必须调用NPN_GetUrl 或其他方法来请求"http://foo/foo2.swf?123456",或者我必须通过创建流来执行此操作(下载资源时)?
- 无论如何,我下载此资源并调用
NPP_NewStream,然后使用NPP_WriteReady和NPP_Write为插件提供资源。 - 处理
NPN_GetUserAgent电话(再次)并收到2 电话NPN_GetUrl- 首先:
- 网址:
javascript:top.location+"__flashplugin_unique__" - 窗口:
NULL
- 网址:
- 第二:
- 网址:
javascript:window.location+"__flashplugin_unique__" - 窗口:
NULL
- 网址:
- 首先:
问题:我必须做些什么来处理这个 url 请求?为什么我的窗口,我给插件的 HWND,在这个阶段不是他画的?
Mozilla 文档说:
如果“window”为空,浏览器会创建一个新流并将数据传送到当前实例,而不管 URL 的 MIME 类型是什么
问题:插件请求javascript是什么意思?如何为此创建一个虚拟处理函数?
【问题讨论】:
-
为什么选择嵌入Mozilla的插件?我已经使用 IE 的 ActiveX 插件成功地将 Flash 和 Shockwave 嵌入到我的应用程序中。与 NPP 不同的是,ActiveX 技术成熟、稳定,而且 SDK 非常好:只需几行代码就可以在 ATL 中嵌入一个 ActiveX,而且 SDK 中有很棒的工具,例如 ActiveX 文本容器和 OleView。
-
@Soonts,我可以使用 ActiveX 插件和 ATL 在 mime 类型“application/x-shockwave-flash”的网页上正确打开对象吗?
-
“在网页上”是什么意思?如果您打开了一个网页,则意味着您已经有一个网络浏览器,并且您不需要在代码中嵌入 Flash 插件。如果您要从其他人的页面窃取 SWF,请注意这是非法的。此外,这些 SWF 的开发人员可以采取措施防止这样做,无论您将使用哪个版本的闪存,NPAPI 或 ActiveX。
-
我只是尝试打开一些用于制作AI的网页游戏,它会做一些重复的动作而不是玩家。做那个工具对我来说很有趣。