メイン 迷える子羊の部屋【初心者専用】 VB.NET上でswfファイルを扱いたいです。 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
shint | Åê¹ÆNo.4189 投稿日時: 2004-2-25 9:17 |
新米 居住地: 東京都中野区/千葉県千葉市 投稿: 4
使用環境:
: WinXP Home Edition : Flash MX その他 : Visual Basic.NET 2003 |
VB.NET上でswfファイルを扱いたいです。 使用環境 WinXP/FlashMX/VB.NET2003
初めまして 先ほど会員登録をさせて頂きましたShintです。 VB.NETでゲームを作っているのですが、ゲーム内の動画部分に swfファイルを使用したいと考えております。 ところが、swfファイルの再生が終わったことをVB上で知る 方法がわからず、困っております。 現状では、VB.NETでフォームを作成し、Browserコントロール (VBのコントロールの一種。InternetExplorerと同じようなもの) を使用してそこに.Navigate2メソッドでswfを読み込ませて います。過去ログを読むとShockWave Flashコントロールを 使った制御例が出ていましたが、どちらがよいのでしょうか。 再生終了後、他のswfを読み込んだり、VB上でゲームに切り 替わる処理等の別処理を行いたいと考えております。 VB.NETのベテランさんのアドバイスの多くは、DirectXを使え という答えが大半ですが、自分はFlashの方が馴染みがあり、 できればFlashとVB.NETで今後もやっていきたいと考えて おります。未熟者ですが、どなたかご教授の程を宜しくお願い 致します。 :-) |
tomosaka | Åê¹ÆNo.4193 投稿日時: 2004-2-25 11:29 |
新米 居住地: 投稿: 26
使用環境:
Pro / Pro7.2J / Player7 / W21SA |
Re: VB.NET上でswfファイルを扱いたいです。 Browserコントロール経由での制御はしたことがないのですが、
ActiveXを使用したやり方ですとFSCommandを使えば簡単にできます。 Flash側 動画終了時に
VB側
これでSWFからのメッセージを受け取れます。 FSCommandについては野中氏のサイトが参考になるとおもいます。 Macromedia Flash非公式テクニカルノート |
shint | Åê¹ÆNo.4194 投稿日時: 2004-2-25 11:30 |
新米 居住地: 東京都中野区/千葉県千葉市 投稿: 4
使用環境:
: WinXP Home Edition : Flash MX その他 : Visual Basic.NET 2003 |
Re: VB.NET上でswfファイルを扱いたいです。 解決しました^^
解決方法・・・ 1..FLAファイルにて、 タイムラインが最長のレイヤの最終フレームにて FSCommandを追加し、コマンドを"Fin"、パラメータを"終わり" とし、ムービーの書き出しにてSWFファイルを作成しました。 2.VB.NETにて、 ShockWave Flash(Flash.OCX)コンポーネントを追加して、 フォームに配置し、またボタンを一つ配置し、以下のコードを 書きました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.AxShockwaveFlash1.LoadMovie(0, "c:\XXXXXX\Flash.swf") Me.AxShockwaveFlash1.Play() End Sub Private Sub AxShockwaveFlash1_FSCommand(ByVal sender As Object, ByVal e As AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent) Handles AxShockwaveFlash1.FSCommand Me.AxShockwaveFlash1.StopPlay() MessageBox.Show(e.args, e.command) End Sub ボタンを押すと、Flash.swfが読み込まれ再生し、最後までくると swfファイルからFSCommandが送られ、再生が終了したことを 知ることができます。 この際、VB.NETでは、FSCommandのコマンド及びパラメータは それぞれe.command及びe.argsで受け取るようです。 上の例では、再生が終了すると、メッセージボックスが出て キャプチャーが"Fin"、メッセージ内容が"終わり"となります。 私が作ったswfは何故かループ再生になっていたので、 Me.AxShockwaveFlash1.StopPlay() の一文を追加して、ムービーがループしないよう止めています。 まだswfファイルの終了のタイミングをVB側で受け取る、という ことしかできませんが、今後とも質問あるいはできる範囲での 質問への回答を頑張りたいと思いますので宜しくお願い致します。m(。_。)m |
shint | Åê¹ÆNo.4195 投稿日時: 2004-2-25 11:37 |
新米 居住地: 東京都中野区/千葉県千葉市 投稿: 4
使用環境:
: WinXP Home Edition : Flash MX その他 : Visual Basic.NET 2003 |
Re: VB.NET上でswfファイルを扱いたいです。 tomosakaさん、素早くご丁寧なお返答ありがとうございました。
頼もしい限りです! 野中氏のMacromedia Flash非公式テクニカルノートの サイト、是非拝見させて頂きます。 今後とも宜しくお願いします。 |
makiyos | Åê¹ÆNo.4199 投稿日時: 2004-2-25 13:31 |
新米 居住地: 投稿: 12
使用環境:
FlashMX2000 WindowsXP |
Re: VB.NET上でswfファイルを扱いたいです。 shintさん、こんにちは
すでに解決されているようですが、 ちょっとだけ補足させてください。 Flash側からアプリに情報を渡すには、fscommandを経由するわけですが、 逆にアプリからFlash側に情報を渡したり制御したりできるように、 様々なメソッドが用意されています。 OpenSpace本部さんのFlash2.3 メソッド/プロパティ一覧が参考になると思います。 また、この一覧にはありませんが、SetVariableメソッドで、変数に値を渡すことができます。 これは非常に便利です。 余談ですが、Browserコントロールは、MSが頻繁に仕様を変えるので、 今までに何度も困ったことになった、という情報を付け加えておきましょう。 (IEのバージョンにも依存します) |
野中文雄 | Åê¹ÆNo.4200 投稿日時: 2004-2-25 13:45 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: VB.NET上でswfファイルを扱いたいです。 補足の蛇足です。
Flash Methodsには、英文のリファレンスがあります。setVariablesも掲載されています。 引用: makiyosさんは書きました: |
植木友浩 | Åê¹ÆNo.4201 投稿日時: 2004-2-25 13:51 |
案内係 居住地: 東京 投稿: 640
使用環境:
Pro + .Tiger + |
Re: VB.NET上でswfファイルを扱いたいです。 C#.NETでFlashを使ってアプリを作ったことがあるんですが、アプリからFlashの関数を呼び出す場合に、setVariableで値を設定して、TCallLabelでフレームアクションから呼び出してました。
Flash内のオブジェクトを取り出して、何かしたいって場合はDirectorの方が使いやすいですね。
|
tomosaka | Åê¹ÆNo.4209 投稿日時: 2004-2-25 16:34 |
新米 居住地: 投稿: 26
使用環境:
Pro / Pro7.2J / Player7 / W21SA |
Re: VB.NET上でswfファイルを扱いたいです。 リファレンスあったのですね。気づかなかった
引用: C#.NETでFlashを使ってアプリを作ったことがあるんですが、アプリからFlashの関数を呼び出す場合に、setVariableで値を設定して、TCallLabelでフレームアクションから呼び出してました。 今もVB.NETにSWFを乗せてアプリを作ってますが、 最近Object.watch()を使うようになってからTCallLabelの使用頻度が激減しました。 Directorはswfの再生速度の低下がもっと少なければ言うことないのですが |
eShin | Åê¹ÆNo.4211 投稿日時: 2004-2-25 17:27 |
半人前 居住地: 投稿: 32
使用環境:
XP Pro(SP1)+IE6 MX2004 Pro |
Re: VB.NET上でswfファイルを扱いたいです。 私もC#.NETとFlashでのアプリ作成に挑戦しています。
Object.watch()の他に、setter/getter(AS2だと set/get)を使う方法もありますね。 「引数有りの関数呼び出し」と「戻り値有りの関数呼び出し」っぽく実装できます。 #「引数ありで戻り値ありの関数呼び出し」はできないのかな。。 ---------- プログラム上でFlashを使うことに関してWeb上で資料を探してみたのですが、 網羅的な情報はなかなか見つからないですね。 Macromedia.comにFlashメソッドの情報とサンプルAPの資料がいくつか見つけました。 ■Flash ActiveXをアプリケーションのUIに使う Macromedia Flash Developer Centert └ Macromedia Flash and VB: A Potent Combination(PDF) └ Embedding Macromedia Flash Player in a C# App to Display Stock Information └ Macromedia - DevNet : FlashSlideShow Sample Application ■Flashメソッド Flash TechNotes: Scripting with Flash Player and ActiveX 他にBBSで断片的な話が聞けるだけという感じ。 その他に情報をご存知の方はいらっしゃいませんでしょうか。。?
|
まつむら まきお | Åê¹ÆNo.4221 投稿日時: 2004-2-25 22:59 |
マスター 居住地: なにわ 投稿: 633
使用環境:
FlashCS5 lion :Win7 and Beer |
Re: VB.NET上でswfファイルを扱いたいです。 まつむらです
盛り上がっているところ申し訳ないですが(^_^;)、ここは初心者部屋ですので、話題が続くようでしたら、「とにかくFlash【Flash全般】」の方でお願いいたします? 引用: その他に情報をご存知の方はいらっしゃいませんでしょうか。。?
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |