• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一つのボタンで再生と停止を行う方法)

一つのボタンで再生と停止を行う方法

このQ&Aのポイント
  • HP上で再生する動画の再生と停止を一つのボタンで行う方法について説明します。
  • 動画のファイルサイズが大きい場合、別のフレームから動画を読み込むことができます。
  • 停止ボタンで一時停止した後、再生ボタンを押すと停止した部分から再生されます。また、動かしているメモリーを戻す方法についてもご説明します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.2

#1です。 すみません。後半文章がグチャグチャになってしまいました。 「個人的には…」 以降を訂正します。 ------------------------------- 個人的にはボタンは1つではなくて,それぞれ違う形が良いです。 だから,上のような(#1前半のような)作り方はしません。 もしボタンを1箇所にまとめたいときは ロードボタンと,スタートボタンと,ストップボタンを1つのMCに入れて, そのMCの 1フレームにロードボタン 2フレームにプレーボタン 3フレームにストップボタン を置いて, とりあえずそのボタンが3つ入ったMC読み込まれたとき1フレーム目でストップさせておきます。 それで, 1フレームのロードボタンがクリックされたら, ターゲットの _root.mc_movie に外部ムービーをロードさせると同時に そのMCは gotoAndStop(3); で3フレームに進めるスクリプトを書きます。 2フレームのプレーボタンがクリックされたら, ターゲットの _root.mc_movie を play(); させると同時に そのMCは gotoAndStop(3); で3フレームに進めるスクリプトを書きます。 3フレームのストップボタンがクリックされたら, ターゲットの _root.mc_movie を stop(); させると同時に そのMCは gotoAndStop(2); で2フレームに進めるスクリプトを書きます。 以降は,2フレームと3フレームの繰り返しになります。 これだと,ボタンの形が変えられるので,次にクリックすれば play するのか stop するのかがわかりやすいです。 flag を立てる方法で,ボタンの形を変えても良いですが,やらたややこしくなります。 -------------------------------------- です。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

本当にボタンは1つが良いですか? もしそうであれば,フラグ(旗)を立てて,その旗の色によってスクリプトを変えるのが一般的だと思います。 パターンは 1.ロードする 2.ムービーをPlayさせる 3.ムービーをStopさせる この3つです。 ロードさせた後は必ず stop(); になります。 stop(); させた後は必ず play(); になります。 play(); させた後は必ず stop(); になります。 これをフラグによって振り分ければ良いのです。 まず読み込むムービーを仮に「movie.swf」。 読み込むMCをルート(メインアニメーション)に置いた「mc_movie」というインスタンス名だとします。 まず,再生やストップなどのボタンが現れるフレームに flag = "1"; という,勝手に決めた変数 flag に "1" という値を与えておきます。 そしてMCを制御するボタンには以下のように書きます。 ----------------------- on (release) { if (_root.flag == "1") { //↓これは例です。他の書き方でも良いです。 loadMovie("movie.swf", "_root.mc_movie"); _root.flag = "3"; } else if (_root.flag == "2") { _root.mc_movie.play(); _root.flag = "3"; } else if (_root.flag == "3") { _root.mc_movie.stop(); _root.flag = "2"; } } ---------------------- こんな感じで1つのボタンで3つの動作をするものができます。 まず初めは,flag = "1" なので,ボタンクリックで 「loadMovie();」 が実行されます。そして flag = "3" になります。 次にクリックされたときは flag = "3" になっているので, 「stop();」 が実行されます。そして flag = "2" になります。 次にクリックされたときは flag = "2" になっているので, 「play();」 が実行されます。そして flag = "3" になります。 あとは,stop と play の繰り返しになります。 個人的にはボタンは1つではなくて,それぞれ違う形が良いです。 だから,上のような作り方はしません。 もしボタンを1箇所にまとめたいときは ロードボタンと,スタートボタンと,ストップボタンを1つのMCに入れて, そのMCの 1フレームにロードボタン 2フレームにスタートボタン 3フレームにストップボタン を置いて, とりあえずそのボタンが3つ入ったMC読み込まれたとき1フレーム目でストップさせておきます。 それで, 1フレームのロードボタンがクリックされたら, ターゲットの _root.mc_movie に外部ムービーをロードさせると同時に そのMCは gotoAndStop(3); で3フレームに進めるスクリプトを書きます。 2フレームのロードボタンがクリックされたら, ターゲットの _root.mc_movie を start(); させると同時に そのMCは gotoAndStop(2); で2フレームに進めるスクリプトを書きます。 3フレームのロードボタンがクリックされたら, ターゲットの _root.mc_movie を stop(); させると同時に そのMCは gotoAndStop(3); で3フレームに進めるスクリプトを書きます。 これだと,ボタンの形が変えられるので次クリックしたら play するのか stop するのかがわかりやすいです。 flagを立てる方法で,ボタンの形を変えても良いですが,やらたややこしくなります。 ================================== >> それと、もう一つ。 の件ですが, 「ムービーを操作する方法について」  教えて!goo http://oshiete1.goo.ne.jp/kotaeru.php3?q=1642403  OKweb http://okweb.jp/kotaeru.php3?q=1642403 で一応私が回答しておりますので,良かったら参考にしてみてください。 ごちゃごちゃ書いていますが, #1で全体の作り方を説明してあって, スクリプト自体は#3が良いと思います。

kumakiti1103
質問者

お礼

ご丁寧な説明ありがとうございました。無事、出来ました。

関連するQ&A