• 締切済み

一定時間経過後、ムービー再生する方法を教えていただけますでしょうか?

FLASHのAction Script(setInterval?)について質問です。 現在タイムラインに4つのラベル(A,B,C,D)を指定して、順次A→B→C→D→A→(以下省略)へとループするムービーを制作しております。 次のラベルへと進む時間間隔をスクリプトで制御する方法を教えていただけますでしょうか。 例:) A→(10秒静止後)→B  上記の10秒となっている部分をスクリプトにて制御出来ればと思っております。 また、上記のムービー上に配置してあるボタンにオンマウスで、上記のカウントをリセットしてムービー停止、 マウスアウトで次のラベルへ進める方法も併せて教えていただきたくお願い申し上げます。 何卒、宜しくお願い致します。

  • Flash
  • 回答数1
  • ありがとう数3

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

場合によっては手直しが必要ですが, _root のタイムライン フレーム1 や フレームラベルA のフレームなどに書くスクリプトです。 また,ボタンはボタンシンボルのインスタンスで作成されていて,インスタンス名を「my_btn」と付けておいたものとしておきます。 ----------------------------------------- // (ストップは不要かもしれません) stop(); // setInterval の重複防止 clearInterval(ID); // ラベル名データ配列を作成 label_arr = ["A", "B", "C", "D"]; // 順次繰り上げる変数 n の初期化 // ラベルA に書く場合は 0 ,それ以外は -1 に設定 n = 0; // ユーザ定義関数 gotoLavel の定義 function gotoLabel() { // n が最終ラベル名エレメント番号よりも小さい場合 if (n<label_arr.length-1) { // n の値に 1 を加算 n++; // n が最終ラベル名エレメント番号以上であれば } else { // n の値を 0 に戻す n = 0; } // gotoAndPlay() でも可能 _root.gotoAndStop(label_arr[n]); } // setInterval(関数名, 実行間隔[ミリ秒]); のセット ID = setInterval(gotoLabel, 10000); // ボタン(インスタンス名my_btn)に関する動作定義 // ロールオーバー時の動作定義 _root.my_btn.onRollOver = function() { // setIntervalをクリア clearInterval(ID); }; // ロールアウト時の動作定義 _root.my_btn.onRollOut = function() { // setInterval(関数名, 実行間隔[ミリ秒]); のセット ID = setInterval(gotoLabel, 10000); }; // ドラッグアウト時もロールアウト時と同じく _root.my_btn.onDragOut = _root.my_btn.onRollOut; ----------------------------------------- setInterval関数 は Flash MX (Flash Player 6)以降で使用可能です。 Button.onRollOver = function() {} など onハンドラメソッド も Flash MX (Flash Player 6)以降で使用可能です。

haden_107
質問者

お礼

お例が遅れまして申し訳ございませんでした。 詳細なご説明有難うございます! 現在、教えていただいたスクリプトを元に色々と試行錯誤している段階です。なんとか上手くできそうです。 本当に有難うございました!

関連するQ&A

  • 一定時間が経過した後のフレーム移動について

    Flash初心者です。うまく質問したいことが伝わるか心配ですが、どうぞ宜しくお願いします。 タブメニュー型のムービーを作成していまして、10秒経過すると次のタブが開き、 また10秒すると次のタブが開く…。このループです。 タブの数は4つ。1フレームごとにそれぞれのタブが開いているように画像で見せておいて(計4フレームを使用)、 スクリプトで10秒の間隔をおき、次のフレームに移動させる仕組みになっています。 タブにはクリックできるようにボタンが仕込んであり、クリックするとムービーの流れ(再生されている順)に関係なく、 そのタブに移動します(2つ目のタブなら2フレーム目を再生)。 (タブの部分のテキスト、タブが開いたときに表示されるバナー画像は外部読み込みになっています。 ただ、この外部読み込みに関しては質問の内容に影響しないと思いますので詳しくは説明しないでおきます。) スクリプトは下記のとおりです。(注:教えて!gooにあったものを使わせていただきました。) ※1フレーム目 --------------------------------------------------------------------- this.stop(); timerID = setInterval(startMovie, 10000); function startMovie() { gotoAndPlay(2); clearInterval(timerID); } ※2フレーム目 --------------------------------------------------------------------- this.stop(); timerID2 = setInterval(startMovie2, 10000); function startMovie2() { gotoAndPlay(3); clearInterval(timerID2); } ※3フレーム目 --------------------------------------------------------------------- this.stop(); timerID3 = setInterval(startMovie3, 10000); function startMovie3() { gotoAndPlay(4); clearInterval(timerID3); } ※4フレーム目 --------------------------------------------------------------------- this.stop(); timerID4 = setInterval(startMovie4, 10000); function startMovie4() { gotoAndPlay(1); clearInterval(timerID4); } これでちゃんと10秒経過すると次のフレームに移動し、それがループされるのですが 問題は、途中で順に再生されているタブと違うタブをクリックしたときに起こります。 一度、その再生順がクリックすることによって変わってしまうと、元々の『10秒後に次のフレームへの移動』の動きと、 クリックされたタブから『10秒後に次のフレームへの移動』の動きが重複しているようなんです。 ちゃんと確認できたわけではありませんが、複数回これを繰り返すと4つのタブがかなりの速度でパッパッパと遷移し、 まともに見ることすらできないものになってしまいます。 解決したいのは、クリックしたタブ(移動したフレーム)から新たに10秒がカウントされ、10秒後には次のフレームに移動し 10秒経過する前に他のタブをクリックしたときでも、そのタブ(フレーム)に移動してからまた新たに10秒がカウントされる…。 このようにするにはどうしたらいいでしょうか? どうぞご教示ください。

  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

  • 一定時間後にsetIntervalでループ処理を行うにはどうしたらいい

    一定時間後にsetIntervalでループ処理を行うにはどうしたらいいのでしょうか。 JavaScriptにwait関数があれば早いのですが、setTimeout()のなかに入れ込むしか思いつきません。 forやwhile等で空ループさせて終了後に実行という方法も考えましたが、CPUに余計な負荷がかかるみたいでこれは避けたいです。 具体的には次のようなことがしたいと思っています。 function(a,b,c){ setTimeout(function(){ setInterval(function(){} ,10 ) },c) しかしこれだと再下段の関数が実行されないようです。またループ処理は可能な限りsetInterval()にさせたいと思っています。クロージャで解決できるんでしょうか。何か良い方法がありましたらお願いします。

  • clearIntervalの記述方法について

    よろしくお願い致します。 jQueryにて「setInterval」を使用して、オープニングムービー(?)のようなものを作りたいと思い、見よう見まねで下記のようなコードを作りました。 取りあえず動作するようになったのですが、繰り返し動作を止めるための「clearInterval」の使い方が分かりません。 この場合、どのようにコードを記述すればよいのでしょうか? お手数ですが、どうぞご教授下さいますようお願い致します。 $(document).ready(function(){ $("#A").fadeTo(0,0); $("#B").fadeTo(0,0); $("#C").fadeTo(0,0); var timerId1 = setInterval(function(){ $("#A").fadeTo(1000,1); var timerId2 = setInterval(function(){ $("#B").fadeTo(1000,1); var timerId3 = setInterval(function(){ $("#C").fadeTo(1000,1); }, 1000); }, 1000); }, 1000); });

  • 外部ムービー再生終了後、特定のラベルへ飛ぶ

    外部ムービー再生終了後、特定のラベルへ飛ぶ 質問させていただきます。 制作環境はAS2.0 FlashCS3 やりたいことは親swfに外部swfムービーを読み込んで 外部ムービーの再生が終わったら、親swfの特定のラベルに飛ぶ、というものです。 親swfの1フレーム目に書き込んだスクリプトは・・・ this.stop(); this.movie.loadMovie("movie1.swf"); if ( movie._currentframe == movie._totalframes ) { this.gotoAndStop("next"); } しかし、いきなりnextラベルに飛んでしまいます・・・ 宜しくお願い致します。

  • flashを一定時間停止させる方法について

    flashで画像ボタンをスクロールさせて表示するメニューボタンを作ろうとしています。 画像ボタンは1つ移動するごとに3秒停止し、3秒経つと横に移動し、 次の画像ボタンが現れ、また3秒停止する、といった動きを繰り返すようにしました。 ここまではできたのですが、 押したい画像ボタンが現れるまで待つのが面倒な場合を考慮し、 メニューの左右にスクロールを進めるためのボタンを付けたところ、 停止の挙動がおかしくなってしまいます。 スクロールを進めるためのボタンを押さなければ正常に 3秒経って画像ボタンが移動するという動きを続けてくれるのですが、 スクロールを進めるボタンを押すと、その後の一時停止が0.5秒くらいになったり 1秒くらいになったりと、指定通りの動きをしなくなってしまいます。 どうすれば正常に動かすことができるのでしょうか? 現状では下記のスクリプトを空白キーフレームに入れて動かしています。 stop(); stopID = setInterval(stopFRAME,3000); function stopFRAME() { clearInterval(stopID); play(); } よろしくお願いします。

    • ベストアンサー
    • Flash
  • ムービーメーカーについて

    blenderにてレンダリングしたjpg形式の静止画600枚を連続再生することによりアニメーションを作成したいと思っているのですが 静止画再生時間が長くムービーメーカーでうまくできません。 600枚の静止画を約10~20秒で再生させる方法をぜひ教えてください。 ムービーメーカーにこだわらずこのソフトならできるなどが ありましたら合わせて教えてください。 よろしくお願い致します。

  • ムービークリップの制御について

    スクリプト初心者です。 ムービークリップの制御について、まったくわからず困っています (1)シーン1、5フレーム目にムービークリップ、インスタンス名a_mc配置 (2)a_mcの中にb_mc配置。b_mcをクリックすると→a_mcの1フレーム目に移動。もう1度b_mcクリックすると→a_mcの10フレーム目に移動。もう1度b_mcをクリックすると→a_mcの1フレーム目に移動・・・と、 b_mcをクリックするごとにa_mcの1フレーム目、10フレーム目、1フレーム目・・繰り返す制御をしたいのですが。。 どなたか分かる方いましたら 教えてください!!

  • ムービークリップ内のムービークリップ制御について

    誠に不勉強の段お許しください。 Flashでサイトを製作しているのですが、どうしても分からず投稿させていただきました。 仮に -rootにボタンとAムービークリップ配置しました。 また、Aムービークリップ内の10フレー目にBムービークリップを配置し、Bムービークリップ内にボタンを配置しています。 _rootのボタンからAムービークリップを制御して10フレーム目のBムービークリップを表示はできるのですが、-root上でAムービークリップのBムービークリップ内のボタンでBムービークリップを制御するのにはどうすればよろしいのでしょうか。 なにとぞご教授いただけましたら幸に存じます。

  • Excel 2003 に関しての質問です(時間の計算)

    時間の計算が上手く行かないのですが、どうすればいいか教えてください。 例えば、 A1]2001 B1]2 C1]1:02:03 (1時02分03秒) D1]=A1/B1(1000.5) E1]D1の数値を秒として考え、C1に、プラスしたい おそらく、”=C1+D1”とするのだと思うのですが、”1902/9/26/ 13:02” と表示されてしまいます。 何とぞお願い致します。

専門家に質問してみよう