2

私のプロジェクトでは、最終的なアプリケーションが 1 つの exe に完全に自己完結している必要があります。ILMerge (アセンブリ マージ ユーティリティ) を使用して、実行可能ファイルと dll を既に結合しています。C# アプリケーションでフラッシュ アクティブ x コントロールをホストしており、フラッシュ コントロールにロードする必要がある 1 つの swf を埋め込みリソースとして C# アプリケーションに埋め込んでいます。

この質問は、リソースを一時ファイルに書き込む方法を示していますが、私の状況では一時ファイルを作成することは望ましくありません。アクティブ x コントロールの loadMovie メソッドは、ロードするファイルを指す文字列しか受け付けないため、これは問題を引き起こします。

私の質問は:一時ファイルを作成せずに、埋め込まれた swf リソースをフラッシュ Active X コントロールに動的にロードすることは可能ですか?

4

2 に答える 2

1

リソースにswfファイルを追加し、runtinmeでファイルをバイト配列として読み取り、この関数に送信できます

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(YourForm));
System.Byte[] data = (System.Byte[])(resources.GetObject("FileName"));
于 2010-01-12T18:59:25.470 に答える
1

私が最終的に使用した解決策は、必要なすべてのswfファイルをラッパーswfのライブラリにパッケージ化することでした。

次に、activex コントロールのムービー プロパティをラッパー swf に設定し、activex コントロールの埋め込みフラグを true に設定します。これにより、swf が直接 ActiveX コントロールに埋め込まれます。C# で読み込みを行うことはありません。むしろ、アクティブ x コントロールで play() メソッドを呼び出して、埋め込まれた swf ファイルを初期化します。

基本的に、リソースを埋め込む場合、C# で行う必要はありません。swf に埋め込むだけで済みます。次に、フラッシュ ラッパー swf ですべてのロードとアンロードを行いました。

于 2009-09-01T06:09:18.673 に答える