2

我的项目要求我的最终应用程序完全包含在单个 exe 中。我已经使用 ILMerge(assmebly 合并实用程序)组合了可执行文件和 dll。我在 C# 应用程序中托管了一个 flash active x 控件,并且我已将需要加载到 flash 控件中的一个 swf 作为嵌入资源嵌入到 c# 应用程序中。

这个问题显示了如何将资源写入临时文件,但不希望为我的情况创建临时文件。这会产生一个问题,因为活动 x 控件 loadMovie 方法只接受指向要加载的文件的字符串。

我的问题是:是否可以在不创建临时文件的情况下将嵌入的 swf 资源动态加载到 flash active x 控件中?

4

2 回答 2

1

我最终使用的解决方案是将所有必需的 swf 文件打包到包装器 swf 的库中。

然后我将activex控件的movie属性设置为wrapper swf,并将activex控件上的嵌入标志设置为true。这会将 swf 直接嵌入到 activex 控件中。我从来没有在 C# 中进行任何加载,我只是在活动 x 控件上调用 play() 方法来初始化已嵌入的 swf 文件。

基本上,如果我嵌入资源,则无需在 C# 中执行,我可以将其嵌入到 swf 中。然后我在 flash wrapper swf 中完成了所有的加载和卸载。

于 2009-09-01T06:09:18.673 回答
1

您可以将 swf 文件添加到资源中,然后在 runtinme 将文件作为字节数组读取,然后将其发送到此函数

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(YourForm));
System.Byte[] data = (System.Byte[])(resources.GetObject("FileName"));
于 2010-01-12T18:59:25.470 回答