一定時間が経過した後のフレーム移動について
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秒がカウントされる…。
このようにするにはどうしたらいいでしょうか?
どうぞご教示ください。
お礼
お礼が、遅くなりました!! とっても参考になりました。 ありがとうございました。