2009-08-21 18 views
2

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

This question shows how to write the resource to a temporary fileですが、自分の状況に合わせて一時ファイルを作成することは望ましくありません。アクティブなx controlのloadMovieメソッドは、ロードするファイルを指す文字列のみを受け入れるため、問題が発生します。

私の質問は:一時的なファイルを作成せずに埋め込みswfリソースをFlashアクティブなxコントロールに動的に読み込むことはできますか?

+0

に送信したバイトの配列としてファイルを読みます2. actionscript 3を使用していた場合、mxmlcのEmbedタグを使用してメインswfにロードするswfを埋め込むだけで、コンパイラは対処方法を知ることができます。私は、URLLoaderまたはURLStreamを作成し、バイナリデータを受け入れるようにヘッダーを設定し、swfバイトを送るようにC#に指示することができます。それが完了すると、Loaderオブジェクトを作成し、loadBytesを使用してバイトを送り、BytearrayをDisplayObjectに変換します。これは理にかなっていますか? –

+0

loadMovieメソッドは、FlashアクティブxコントロールのC#メソッドです。 – JohnU

答えて

1

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

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

基本的に、リソースを埋め込む場合、C#でそれを行う必要はありません。私はswfに埋め込みます。私はその後、フラッシュラッパーswfですべてのロードとアンロードを行いました。あなたは、リソースへのswfファイルを追加することができます

1

はその後runtinmeであなたはActionScriptを使用している意味「のloadMovie」言及したこのfunction

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(YourForm)); 
System.Byte[] data = (System.Byte[])(resources.GetObject("FileName")); 
関連する問題