我正在尝试在C#中的控制台应用程序中使用AxShockwaveFlashObjects.AxShockwaveFlash
对象。为此,您必须将obj.OcxState
设置为某些内容。我看了表单设计器是如何做到的,它是这样做的:
this.flash.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("flash.OcxState")));
我看了资源,那里什么也没有。
我的问题是,如何手动创建AxHost.State
,以便我可以将我的Flash对象的OcxState
设置为它?
我发现State
的构造函数需要Stream
,int
,bool
和string
。但我不知道要在Stream
(或int
,bool
或string
)中添加什么来创建它。
答案 0 :(得分:4)
我喜欢这个问题:P,因为设置OcxState可以让你从内存中的流动态加载Flash电影,我曾经看到这里和那里没有回复的问题(也许它现在是dunno)。两年前我在做一个重要的项目时意识到这一点,并将其搁置三个小时左右,直到我开始工作。
作为流可以使用任何流,MemoryStream就足够了(为了填充它你可以使用BinaryWriter),设置OcxState只需要这样做:
flashCtl.OcxState = new AxHost.State(stream, 1, false, null);
如果资源文件的OcxState条目为空,可能是因为Flash OCX允许您设置一个没有问题的空流,这是我不知道的。