- ベストアンサー
動画の再生が終わったら停止させたいです
ActionScriptを使って簡単なWebページを作ってます。 ボタンをクリックしたら短い動画が再生されるという簡単なものなのですが、一度再生せれた動画が止まらなくて(永延とループしてしまう)困っています。 onClipEventなどで動画の読み込みが終わったらとれるイベントはあるようなのですが、動画の再生が終わったらとれるイベントはあるのでしょうか? それともイベントから動画をStopさせる以外の方法があるのでしょうか? 申し訳ありませんが、教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
動画…? 動画と言っても,Flashに埋め込んだ動画をSWFにパブリッシュしたファイル。つまり結局,SWFファイルなのではないでしょうか? SWFファイルだと,その動画の入った最終フレームに stop(); と書けば,動画はループしません。 普通のFlashと何にも変わりませんし,一番簡単で確実なのでこれが良いと思います。 あえて読み込む親SWFから,読み込まれるSWFを止めたい場合は, 読み込まれるファイルの「総フレーム数」と,「再生されているフレーム」を1フレーム進むごとに取得して, 「総フレーム数」=「再生されているフレーム」 となったとき,その読み込まれるムービーを停止させれば良いことになります。 以下は,loadMC というインスタンス名のムービークリップに, 同じディレクトリにある movie.swf を読み込むと同時に, movie.swf の「総フレーム数」と,「再生されているフレーム」を取得して,「総フレーム数」=「再生されているフレーム」 となったとき,読み込まれている movie.swf を stop(); させるボタンのスクリプト例です。 ---コピペ可--------------------------------- on (release) { loadMC.loadMovie("movie.swf"); this.onEnterFrame = function() { total_frm = _root.loadMC._totalframes; now_flm = _root.loadMC._currentframe; if (now_flm>=total_frm) { _root.loadMC.stop(); } }; } ------------------------------------------- ---上記スクリプトの説明----------------------- ※全角空白文字が入っているためそのままコピペは不可 //ボタンがクリックされたら on (release) { // loadMC に movie.swf を読み込む loadMC.loadMovie("movie.swf"); //1フレーム進む時間ごとに以下を計算 this.onEnterFrame = function() { //total_frm に読み込まれたSWFの総フレーム数を代入 total_frm = _root.loadMC._totalframes; //now_flmに 読み込まれたSWFの現在のフレーム数を代入 now_flm = _root.loadMC._currentframe; //もし 現在のフレーム数=総フレーム数となったとき if (now_flm>=total_frm) { //読み込まれたムービーをストップ _root.loadMC.stop(); } }; } ------------------------------------------- SWFファイル以外のファイルを読み込んだ場合はよくわかりません。