手动创建Flash AxHost.OcxState

时间:2011-06-12 17:21:47

标签: c# flash interop

我正在尝试在C#中的控制台应用程序中使用AxShockwaveFlashObjects.AxShockwaveFlash对象。为此,您必须将obj.OcxState设置为某些内容。我看了表单设计器是如何做到的,它是这样做的:

this.flash.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("flash.OcxState")));

我看了资源,那里什么也没有。

我的问题是,如何手动创建AxHost.State,以便我可以将我的Flash对象的OcxState设置为它?

我发现State的构造函数需要Streamintboolstring。但我不知道要在Stream(或intboolstring)中添加什么来创建它。

1 个答案:

答案 0 :(得分:4)

我喜欢这个问题:P,因为设置OcxState可以让你从内存中的流动态加载Flash电影,我曾经看到这里和那里没有回复的问题(也许它现在是dunno)。两年前我在做一个重要的项目时意识到这一点,并将其搁置三个小时左右,直到我开始工作。

作为流可以使用任何流,MemoryStream就足够了(为了填充它你可以使用BinaryWriter),设置OcxState只需要这样做:

flashCtl.OcxState = new AxHost.State(stream, 1, false, null);

如果资源文件的OcxState条目为空,可能是因为Flash OCX允许您设置一个没有问题的空流,这是我不知道的。