1

我正在使用 flash 10 activex 控件将 flash 电影加载到我的 WinForm 中。不幸的是,它只需要一条路径。我想要做的是从我可以从 EmbeddedResource 获得的流中加载 swf,这样我就可以将 swf 嵌入到我的 exe 中,这样 A)我不必担心路径和 B)我没有我的 swf 非常暴露 - 使用和部署都更简单。

我知道使用f-in-box,但我不想在我的项目中添加另一个依赖项。有没有办法将 swf 加载到底层的 activex 控件中而不必使用路径?

我正在使用 C# 和 .Net 3.5sp1。

4

2 回答 2

2

该路径是否始终是文件路径?或者它可以是一个 URL?使用(或类似的)设置一个临时本地主机网络服务器应该非常简单,该服务器HttpListener将文件流回以响应 http 请求。

另一种可能性是命名管道。我想知道您是否可以说服控件像打开文件一样打开命名管道?(毕竟它们有一个逻辑文件路径)。不过,我几乎没有接触过这些——所以我不能说 100% 它是否会起作用。

于 2009-11-14T20:24:28.600 回答
0

我不知道 flash 10 是否支持res 协议从资源中加载网页内容。但我认为 Windows 窗体和 WPF 中的 Web 浏览器控件支持它。

要创建原生资源,您需要原生资源的编辑器。Visual C++ 有一个。您可以使用 Windows SDK 中的 RC.exe 将其编译为 res 文件,然后再链接到您的 C# 程序中。

更新:看起来 IE 的 flash 插件不支持 res 协议。将 .swf 文件嵌入资源文件并使用 movie 参数加载它是行不通的。尝试将 Flash 文件嵌入 Web 存档文件 (.mht) 并将 .mht 文件添加到您的资源中。

于 2009-11-14T17:39:07.247 回答