C#の中にFlashを埋め込む

注:2003年頃の記事

WindowsアプリケーションのUIをFlashで作れるようになるかも。

Flash Objectをデザイナで配置する

「ツールボックス」パネルの「Windowsフォーム」を右クリック→「ツールボックスのカスタマイズ」→「COMコンポーネント」タブ→「Shockwave Flash Object」 (Flash.ocx)をチェック

あとは普通のコントロールと同じようにフォーム上に配置する

SWFを読み込む

FlashObject.LoadMovie(layer, path)で読み込む。Layerが何なのか不明。

String swfPath = Directory.GetCurrentDirectory() +

Path.DirectorySeparatorChar + "embedFlash.swf";

this.flash.LoadMovie(0, swfPath);

埋め込んだFlashに値を渡す

C#側(メッセージを送る方)

FlashObject.SetVariable("Flash側の変数名", "値");

Flash側(メッセージを受け取る方)

ルートに変数を置く。例:

_root.hogeData = "";

その変数が書き変わるのをwatchする。

function onHogeData(prop, oldVal, newVal, userData){

// なんか処理

}

_root.watch( "hogeData", onHogeData);

埋め込んだFlashから値を受け取る

Flash側(メッセージを送る側)

fscommandを使う。

fscommand("nanika_command", "this.nanikaText");

C#側(メッセージを受け取る側)

FlashObjectのFSCommandイベントで受け取る。コマンド名と引数が送られてくる。

.netで、デザインのウィンドウでflashのところをクリックしプロパティのFSCommandをダブルクリック。

参考リンク