2011-06-12 77 views
3

我想在C#中使用控制檯控制檯中的AxShockwaveFlashObjects.AxShockwaveFlash對象。要做到這一點,你必須設置obj.OcxState。我看了一下表單設計師是如何做到這一點的,並且是這樣做的:手動創建一個Flash AxHost.OcxState

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

我查看了資源,這裏沒有任何東西。

我的問題是,我如何手動創建AxHost.State,以便我可以將我的flash對象的OcxState設置爲它?

我看到一個State的構造函數接受一個Streamintboolstring。但我不知道要在Stream(或int,boolstring)中創建它。

回答

4

我喜歡這個問題:P,因爲設置OcxState可以讓你從內存中的流中動態加載Flash影片,我見過的東西在這裏和那裏都沒有回覆(可能是現在,不知道)。兩年前,我在一個重要項目的工作中意識到了這一點,並將其擱置了三個小時,直到我開始工作。

由於流,你可以使用任何流,一個MemoryStream足夠(爲了填補它,你可以使用的BinaryWriter),設置OcxState只是做:

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

如果資源文件中有OcxState輸入爲空,也許是因爲Flash OCX可以讓你設置一個沒有問題的空流,這是我不知道的。

+0

而我甚至不記得爲什麼我需要這樣做。非常感謝你的回答,但是當我記得的時候,我會記住它:) – 2011-08-04 11:56:44

+0

呃,我甚至沒有意識到這個問題已經有幾個月的時間了,好吧,它可能對其他人有幫助未來也是如此。 – Neverbirth 2011-08-04 12:06:33

+0

@Neverbirth得到了關於OcxState的問題:http://stackoverflow.com/questions/8735616/activex-initialization-axhost-state-object – 2012-01-06 09:32:32