一定時間停止後フレーム移動

このQ&Aのポイント
  • 初心者のため、ActionScript3.0で一定時間後に任意のフレームまで戻る方法を教えてください。
  • 記述に間違いがあるのか、一定時間止まらずにフレームまで戻ってしまいます。
  • 色々な方法を試してみましたがエラーばかりでうまく動きません。この記述だとちゃんと停止するのですが、gotoAndPlay(10);と付けると停止しません。
回答を見る
  • ベストアンサー

一定時間停止後フレーム移動

初心者ですがよろしくお願いします。 ActionScript3.0にて 一定時間後に任意のフレームまで戻るを実行したいのですが 一定時間止まらずにフレームまで戻ってしまいます。 下記の記述は間違ってますか? 一定時間停止の記述法は色々あるみたいですが いくつかやってみたところエラーばっか出て動きませんでした。 この記述だとちゃんと停止するのですが gotoAndPlay(10); を付けると停止しません。 this.stop(); this.iid = setInterval (function (m) { m.play (); clearInterval (m.iid); }, 3000, this); gotoAndPlay(10);

  • kaa_ko
  • お礼率76% (170/222)
  • Flash
  • 回答数1
  • ありがとう数6

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

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

状況がよくわかりませんが 単純に次のようにすれば良いのではないでしょうか? --------------------- this.stop(); this.iid = setInterval (function (m) { m.gotoAndPlay(10); clearInterval (m.iid); }, 3000, this); --------------------- なお ActionScript 3.0 では,ヘルプなどを見ると, setInterval のかわりに Timerオブジェクト を使用するように注意書きがありますので, Timerクラス のメソッドなどを使用した方が良いでしょう。 私が上で書いたスクリプトを Timerクラス を使って書き直した例↓。 --------------------- this.stop(); //3000ミリ秒間隔で1回だけ実行するTimerインスタンスを作成 var myTimer:Timer = new Timer(3000, 1); //myTimerにTIMERイベントで動作させるイベントリスナーを登録 myTimer.addEventListener(TimerEvent.TIMER, function(){ gotoAndPlay(10); }); //myTimerスタート myTimer.start(); ---------------------  

kaa_ko
質問者

お礼

質問の内容が変わってきましたので、別枠で質問します。 ありがとうございました。

kaa_ko
質問者

補足

ありがとうございます。 確かにできましたが、タイムラインに1つ配置するなら大丈夫なのですが、実際は10箇所くらいに配置したいと思っています。 myTimerの部分を1.2.3...と名称がダブらないようにして配置してやってみて、出来たことはできたのですが、パブリッシュしてみると非常に不安定なんです。 3秒って指定しているにもかかわらず、1秒くらいだったり。 しかも決まった動作はしてなくて、ランダムな感じで挙動がおかしくなってます。 指定していないフレームが一瞬パッと現れたりしたり・・・(現れない時もあります) どうしてでしょうか?

関連する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秒がカウントされる…。 このようにするにはどうしたらいいでしょうか? どうぞご教示ください。

  • 複数のクリックボタンにより再生と停止場所を指定する方法

    複数のボタンを用意し、クリックするボタンにより異なるフレーム数で停止たいと思っております。 停止したいフレームごとにstop();を入れると、そこで毎回止まってしまうのでボタン毎に停止場所を指定しようと、以下のように試してみましたが、出来ませんでした。 停止場所をラベルでも指定してみましたが、出来ませんでした。 stop(); _root.next1.onRelease = function() { gotoAndPlay(5); this.stop(10); } _root.next2.onRelease = function() { gotoAndPlay(5); this.stop(20); } どなたかお考えのあるかたご教授いただけますと幸いです。 当方 Flash8 ActionScript2.0 を使用しています。

  • 数秒後に別フレームにとばす方法

    1フレーム目で画像を読み込み10秒表示させた後に2フレーム目でまた10秒表示させるといった事を試しています。 表示させる画像はムービークリップで最後の1秒でフェードアウトさせるようにしているのですが 完全にフェードアウトする前に2フレーム目に飛んでしまいます。 何か解決方法はないのでしょうか?? 1フレーム目 ---------------------------------------------------------- this.stop(); timerID = setInterval(startMovie, 10000); function startMovie() { clearInterval(timerID); gotoAndStop(2); } 2フレーム目 ---------------------------------------------------------- this.stop(); timerID = setInterval(startMovie, 10000); function startMovie() { clearInterval(timerID); gotoAndStop(1); } ちなみにgotoAndStop();を消すとそのフレームでループしますが完全にフェードアウトしてくれます…。

    • ベストアンサー
    • Flash
  • mcの中のフレームラベルの移動

    初めまして。 当方初心者なので、よくわからないので、質問させていただきます。 外部にswfとしてフレームラベルの複数ついたものがあって、 それをmc(mcs_mc)で読み込みし、スクリプトで一定時間毎に mcに読み込んだ外部swfのフレームラベル(chapter1~chapter10)を移動させたいのですが、うまく動いてくれません。 どの用にしたらよいでしょう?よろしくお願いします。 onClipEvent(load){ this._lockroot = true; } onClipEvent(enterFrame){ setInterval( function(){ mcs_mc.gotoAndPlay("chapter2"); }, 1000); }

    • ベストアンサー
    • Flash
  • ムービーの指定フレームでの停止方法について

    http://book.mycom.co.jp/support/e5/actionscript10/ ↑ここのサイトで見つけましたムービーの任意のフレームでの停止方法がわからないので、お尋ねさせていただきます。 上記サイトの 「Chapter12 計算で自動アニメーション」の 「12-13 ランダムな大きさと速度で浮き上がる泡」 です。 単純に止めたいフレームにstop();を記述しても止まらず、教えてgoo内の質問で見つけたremoveMovieClipを使えばどうかと、いざ記述しようにも全然うまくいきませんでした・・・。 どなたかこの浮き上がる泡達を止めてください。 よろしくお願い致します。

    • ベストアンサー
    • Flash
  • スライドの表示とアクションスクリプトの関連

    こんにちわ。 現在、プレゼン風のスライドを作成しております。 親スライドがあり、その下に子スライドを数個作成しております。また、その子スライドにアクションを配置した仕様にしております。 また、アクションは、以前にこちらのサイトで教えていただきました、時間指定のアクションなのですが、子スライド2が表示されて数秒後に子スライド2内の指定のフレームに移動するアクションスクリプトを記述しています。というか、そういう風にしたいと想っています。 親スライド   |   子スライド1ー静止画   |   子スライド2-時間指定のスクリプト this.stop(); timerID = setInterval(startMovie, 28000); timerID2 = setInterval(startMovie2, 31000); function startMovie() { gotoAndPlay(5); clearInterval(timerID); } function startMovie2() { gotoAndPlay(10); clearInterval(timerID2); } 上記スクリプトは、子スライド2内の1フレーム目に記述しています。 また、各スライドの切り替えは、mediaDisplayのパラメーターで映像に合わせて、時間指定で切り替えています。 上記、スクリプトは稼動するのですが、スライド2が表示されてからではなく、全体が再生されてからの時間で動いてしまいます。 ですので、スライド1が表示されている裏でスライド2のアクションが動いてる感じです。 スライド2が表示されてから、アクションスクリプトが動くようになるには、どういう風に指定すればよいのでしょうか? ほかのとこでも聞いたのですが、ちょっと利き方が悪いのか、お返事がなくて。。。

  • 一定時間ごとにカウント

    iを0として、一定時間たったらiを1プラスしたいのですが、 どのようにしたらいいかわかりません。 setIntervalを使って下記のとおり記述してみました。 var i = 0; function cnt(){ i++; } setInterval(cnt,1000); trace(i); しかし、iはいつまでたっても0のままです。 たとえば20秒ごとにiを1プラスしていくといった場合は、 どのように記述したらいいのでしょうか。 Flash CS3、WinXP、AS2.0です。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • flashを一定時間停止させる方法について

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

    • ベストアンサー
    • Flash
  • ロールオーバーするとラベルにジャンプし、ロールアウトするまでストップ

    ボタンAとボタンBの2つがありまして、 ボタンAにロールオーバーすると、指定したラベルにジャンプし、ボタンAの位置にボタンBがきます。 オーバー後少し進み、ロールアウトするまでストップしたいのですが、どうすれば良いのでしょうか? ボタンAには ──────────────────── on (rollOver) { gotoAndPlay("ボタンBの所のラベル"); } ──────────────────── と書いてあり、ロールオーバー時にきちんとラベルにジャンプしてくれます。 ボタンBには、 『 buttonB 』と名前を付け ──────────────────── on (release) { getURL("http://www.URL"); } ──────────────────── と記載してあり、別ページに飛ばしております。 該当のラベルまでジャンプした後、10フレームくらい進んだフレームにActionScriptをかけておりまして、 ──────────────────── stop(); clearInterval(stopID); var mov_stop = 4000; stopID = setInterval(function () { play(); clearInterval(stopID); }, mov_stop); } ──────────────────── となっており、ここのフレームでロールアウトするまでストップさせたいのですが、どうすればいいのか分からず困っております。 分かり難い文章で申し訳ないのですが、どなたか詳しい方ご掲示お願い致します。

    • ベストアンサー
    • Flash
  • suzukaのスクリプトで

    suzukaでFlashを制作しております。 プログラムはさっぱりなので検索して出てきたactionscriptを切り貼りして試している状況です。 その1.フレームアクションにおいて、キーを押したら特定のフレームまで移動するスクリプトを入れたいので20フレーム目に以下のスクリプトを入れたのですが、どちらも使えませんでした。具体的な解決策はありますでしょうか。 ●[parse error]とエラーが出る this.stop(); on(keyPress ("a")){ _root.gotoAndPlay(21); } ●キーを押しても何も起こらない this.stop(); if(Key.isDown(Key.RIGHT)){ _root.gotoAndPlay(21); } else if(Key.isDown(Key.LEFT)){ _root.gotoAndPlay(31); } その2.フレームアクションの10フレーム目に this.stop(); buttonA.onPress=function(){ _root.gotoAndPlay(11); }; とボタンのスクリプトを入れると、 どこのフレームまで移動しようが 同じボタンへの命令で上書きするまで このボタンへの効果が持続されてしまうのですが、 押した瞬間に後に命令を引き継がせないスクリプトの記述はありますか?

    • ベストアンサー
    • Flash

専門家に質問してみよう