• ベストアンサー

最後のフレームで数秒止めてループ再生したい

FlashMXを使用しています。 ループ再生するFlashを作ったのですが、 最後のフレームで数秒止めてループ再生するには どうしたらいいのでしょうか?

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

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

最後のフレームで数秒止めるのは, 単純に, 最後のフレームだと決めたフレーム以降で何も動かさないようにして, そのフレームの後に数~数十フレーム,同じ状態でフレームを伸ばせば良いだけです。 何も書かなければ勝手にループするので,スクリプトは一切なしでできます。 普通は上の方法ですが,それ以外の方法ですか? スクリプトでするなら, setInterval が良いと思います。 コピペ可 ----------------------------- stop(); ID1 = setInterval(function () { gotoAndPlay(1); clearInterval(ID1); }, 5000); ----------------------------- 勝手に決めた ID1 というオブジェクトにsetInterval をセットして 5000ミリ秒(5秒)後に, gotoAndPlay(1); clearInterval(ID1); を実行すると言うことです。 gotoAndPlay(1); はわかりますよね。 フレーム1に行かせるスクリプトです。 clearInterval(ID1); で ID1 をクリアーします。 クリアーしないと,5000ミリ秒(5秒)ごとに, gotoAndPlay(1); が実行されてしまいます。 =========================== その他,EnterFrame でカウントをとって, カウントが一定数に達したら gotoAndPlay(1); という方法も考えられますし↓ ---------------------------- stop(); count = 0; this.onEnterFrame = function() { count++; if (count == 500) { gotoAndPlay(1); delete this.onEnterFrame; } }; ---------------------------- また, getTimer() でタイマーをセットして,一定時間が来たらgotoAndPlay(1); をする方法も考えられます。

penguin88
質問者

お礼

ありがとうございます。 教えて頂いた2つのスクリプトで止める事ができました。 ただ、2度目のループ以降は止まらないのですが、 ループする度に何秒か止めたいのですが その場合はどうしたらいいのでしょうか?

その他の回答 (1)

noname#35109
noname#35109
回答No.2

#1です。 > 2度目のループ以降は止まらないのですが、 > ループする度に何秒か止めたいのですが > その場合はどうしたらいいのでしょうか? ??? 両方ともループする度に止まりますけど… まず,スクリプトはタイムラインのフレーム(最終フレーム)に書いていますよね。 最終フレームに行くたびに,ID1 は再定義され this.onEnterFrame も実行されますが。 2回目以降は最終フレーム行かないとかいう特殊な作りはしていませんよね。 FLAもSWFも FlashMX で作成しましたし, Flash Player 6 でも,Flash player 8 でも見てみましたが,2回目以降も止まります。 止まらないのは謎です。

penguin88
質問者

お礼

ありがとうございます。 初心者なもので手順を間違っているのかもしれません。 もともとレイヤーが6つありまして、そのレイヤーの一番上に、 新しいレイヤーをアクションスクリプト用に作りました。 そのアクションスクリプト用の最後のフレームに キーフレームを挿入し、教えて頂いたスクリプトを書きました。 パブリッシュの設定などで変わるわけではないですよね? 今やり直してみたのですが、やっぱり2回目以降止まらないのです。 何度もすみません。