C#のアプリにFlash(swf)を埋め込む。実績スマホのブラウザで即参加!C#のアプリにFlash(swf)を埋め込む。Flashはデジタルサイネージの分野でも広く使われている。元がウェブ向けの技術なので、OSネイティブの動作と連動しづらい部分もある。この問題を改善する方法としてC#でまずアプリを作って、そこにFlash(swf)を埋め込むという方法がある。C#はMicrosft推奨のアプリ作成方法なので、OS側(Windows)の機能の十分な活用が可能になる。Flash(swf)がUIレイヤーとなりキレイなアニメーションを担当し足回りはC#で固める、というイメージだ。ここでは、基本のキとして、C#のプログラムにFlash(swf)を埋め込む方法を紹介する。ちなみに先日紹介したNativeProcessも似た問題の違う解決方法となる。NativeProcessは連携アプリとAIRの二種のアプリを同時起動させて連動させる方法だ。ここで紹介するのは、C#のWindowsアプリにswfを乗せて再生するので、一つのアプリだけが起動していることになる。1.準備1-0埋め込んで、表示するだけのswfを用意する。↓これをダウンロードし、展開しておく。EmbedFlash.swfが入っている。EmbedFlash.zipソースコードは最後に記述した。Expressを起動し、メニューの「ファイル」から「新しいプロジェクト(P)...」を選択します。アプリケーション」を選択し、右下の「OK」ボタンを選択する。1-3次のような画面になる。1-4緑色の三角、「デバッグ開始」をクリックすると、ウィンドウが立ち上がり、動作確認ができる。何も設定していないので、真っ白のウィンドウが出るだけだ。1-5メニューの「ファイル/すべてを保存」を選択する。1-6とりあえずこのまま「上書き保存」を選択する。2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\内に先ほどダウンロードした、EmbedFlash.swfを配置する(リリース用ビルドの場合には、Releaseディレクトリ内に配置する)。Expressに戻る。このままだと、基本機能しかメニューに出てこないので、メニューの「ツール/設定/上級設定」を選択する。1-9メニュー項目に「ビルド」が増えたのを確認する。2.制作2-1それぞれのメニュー内の項目も増えている。アイテムの選択」を選択する。アイテムの選択」ウィンドウが出てくる。Object」が現れるので、チェックボックスを選択し、「OK」を選択する。2-3左端の「ツールボックス」タブをクリックし、開く。Object」が追加されているのを確認し、メニュー項目をドラッグして、ウィンドウ内に持ってくる。2-5ドロップすると、四角いエリアが表示される。これが、Flash(swf)が埋め込まれるエリアだ。2-6右側にある「ソリューションエクスプローラー」を右クリックして「コードの表示」を選択する。System.IO;[/sourcecode]を書く。swfPath);[/sourcecode]を書く。ファイルのパスは相対パスではだめで、絶対パスでないといけないので「Directory.GetCurrentDirectory()」でC#アプリのあるディレクトリを取得している。そこに、さらに「Path.DirectorySeparatorChar」で、セパレーター(\)を追加している。"\\EmbedFlash.swf";[/sourcecode]でもかまわない。次の行は、axShockwaveFlash1にswfのパスを渡し、ロードムービーさせている。swfPath);[/sourcecode]「axShockwaveFlash1」は、Flashを配置するエリアのことで、2-5でツールをドロップした時点で自動的に命名されている。2-8緑色の三角、「デバッグ開始」をクリックすると、ウィンドウが立ち上がり、Flashが埋め込まれているのを確認できる。以前のエントリーC#のアプリにFlash(swf)を埋め込む。理解していることを前提にしている。[...]C++のアプリにFlash(swf)を埋め込む。C#のアプリにFlash(swf)を埋め込む。