C #: загрузка встроенного SWF во Flash ActiveX без временного файла - PullRequest
2 голосов
/ 21 августа 2009

Мой проект требует, чтобы мое окончательное приложение полностью содержалось в одном exe. Я уже объединяю исполняемый файл и dll с помощью ILMerge (предположительно утилита слияния). Я размещаю элемент управления flash active x в приложении C #, и я добавил один SWF, который мне нужен для загрузки в элемент управления Flash, в приложение c # в качестве встроенного ресурса.

Этот вопрос показывает, как записать ресурс во временный файл , но нежелательно создавать временные файлы для моей ситуации. Это создает проблему, поскольку активный метод loadMovie элемента управления x принимает только строку, указывающую на загружаемый файл.

У меня такой вопрос: Можно ли динамически загружать вложенные SWF-ресурсы в элемент управления flash active x без создания временного файла?

Ответы [ 2 ]

1 голос
/ 12 января 2010

вы можете добавить SWF-файл к ресурсам, а затем в runtinme прочитать файл как массив байтов и отправить его в эту функцию

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(YourForm));
System.Byte[] data = (System.Byte[])(resources.GetObject("FileName"));
1 голос
/ 01 сентября 2009

Решение, которое я использовал в итоге, заключалось в упаковке всех необходимых SWF-файлов в библиотеку SWF-оболочки.

Затем я установил свойство movie элемента управления activex в оболочку swf и установил флаг встраивания элемента управления activex в значение true. Это встраивает этот SWF непосредственно в элемент управления ActiveX. Я никогда не делаю никакой загрузки в C #, я просто вызываю метод play () на активном элементе управления x, чтобы инициализировать вставленный SWF-файл.

В принципе, если я встраиваю ресурс, нет необходимости делать это в C #, я могу просто встроить его в SWF. Затем я сделал всю свою загрузку и выгрузку во флэш-оболочку SWF.

...