Создание Flash AxHost.OcxState вручную - PullRequest
3 голосов
/ 12 июня 2011

Я пытаюсь использовать объект AxShockwaveFlashObjects.AxShockwaveFlash в консоли приложения в C #. Чтобы сделать это, вы должны установить obj.OcxState на что-то. Я посмотрел, как это делает дизайнер форм, и делает это следующим образом:

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

Я посмотрел в ресурсах и там ничего нет.

У меня вопрос, как я могу создать AxHost.State вручную, чтобы я мог установить OcxState моего флеш-объекта на него?

Я вижу, что конструктор State принимает Stream, int, bool и string. Но я не знаю, что положить в Stream (или int, bool или string), чтобы создать его.

1 Ответ

4 голосов
/ 04 августа 2011

Мне нравится этот вопрос: P, потому что установка OcxState позволяет вам динамически загружать Flash-фильм из потока в памяти, что я когда-либо просил здесь и там без ответа когда-либо (может быть, сейчас, не знаю). Я понял это два года назад, работая над важным проектом, и оставил его на три часа или около того, пока не заработал.

В качестве потока, который вы можете использовать любой поток, достаточно MemoryStream (для его заполнения вы можете использовать BinaryWriter), чтобы установить OcxState, просто выполните:

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

Если в файле ресурсов запись OcxState пуста, возможно, это связано с тем, что Flash OCX позволяет установить пустой поток без проблем, это то, чего я не знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...