タイムラインを定期的にスタートさせるには?

解決済みの質問

タイムラインを定期的にスタートさせるには?

AS3.0でCS5です。

下記のようにタイムラインをコントロールする為のスクリプトを教えてください。

例えば、フレームは1フレームから100フレームまであるとします。ムービーが読み込まれてタイムラインが1から100まで移動します。その100フレームで一旦タイムラインが停止します。停止後、例えば3分後に、再びフレーム1に戻り、ムービーがスタート。その後同じように100フレームで停止…その後3分後に…と言う感じで、3分毎にムービーがスタート…1フレームに戻り100フレームで停止…それをエンドレスで行いたいのです。

その場合、1フレーム(又は100フレーム)に記述するスクリプトを教えてください。

よろしくお願い致します。

投稿日時 - 2012-01-28 23:19:00

QNo.7272316

困ってます

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

#1ですが。。。

> パブリッシュプレビュー時には、下記のメッセージが表示されます。
> 「行6' { 'が必要です。」
> ~略~
> 行9とは…。
> 「 } 」となります。

は? 何が?
私はちゃんと作ってみて動作検証してから回答してるんです。

ちなみに
もう一度最初から100フレームのムービーを作ってみて
#1に書いたスクリプトをフレーム100のキーフレームにコピペしてみましたが
エラーも出ない上,ちゃんと動作もしましたよ【図】↓。
 

 

> タイムライン最後のフレームに行っても、
> 再生停止せずに、
> すぐにループしてしまい最初のフレームに戻って再生されてしまいます。

最終フレームに

stop();

だけを書いた場合も止まらないのでしょうか?
もし止まらないのであれば
すでに異常なことをされているということです。

投稿日時 - 2012-01-29 14:36:04

お礼

BlurFiltanさん:

いつも迅速な的確なご回答有難うございます。
そして、大変にお手数をお掛けいたしました。

早速ですが、タイムラインを新規に作成し、上記のスクリプトを再度記述して実行してみました。
そうしましたら、BlurFiltanさんの言うように動作いたしました…。

原因は、何かわからないのですが、正確な動作確認が出来ました。
いつも色々と有難うございます。

助かりました…本当に有難うございました。

投稿日時 - 2012-01-29 18:38:17

ANo.2

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.1

3分間ですか。
えらく長い待ち時間ですね。。。

待ち時間の長さはどうでも良いとして
結論ですが,
フレーム100 にキーフレームを作り
そのキーフレームに次のように書けば良いでしょう。

//---------------------------------------
//このフレームで再生停止
stop();

//関数「rePlay」の定義
function rePlay(evt:TimerEvent):void {
//フレーム1 に戻って再生開始
gotoAndPlay(1);
}

//Timerインスタンスを作成(3分後に,1回実行)
var myTimer:Timer=new Timer(3*60*1000,1);
//指定時間後に関数「rePlay」を実行するようにセット
myTimer.addEventListener(TimerEvent.TIMER,rePlay);
//タイマースタート
myTimer.start();
//---------------------------------------


上記スクリプトの
new Timer(3*60*1000,1);
の部分の引数の意味は
new Timer(待つミリ秒数,回数);
です。

1秒は 1000 ミリ秒です。
したがって
1分は 60×1000 ミリ秒となり
3分は 3×60×1000 ミリ秒となります。

もちろん
3×60×1000=120000 ですから
new Timer(120000,1);
としても良いです。
というかむしろそうした方が良いですが
意味を理解したり変更したりするという人間の都合上
new Timer(3*60*1000,1);
の方が良いかと思い,あえて計算はしていません。

待ち時間が長くて時間の無駄なので
動作検証する場合は
とりあえず
new Timer(1*60*1000,1); にするとか
さらにもっと短い時間を記入して確かめた方が良いでしょう。

投稿日時 - 2012-01-29 09:00:05

補足

BlurFiltanさん:

いつも迅速な的確なご回答有難うございます。

早速ですが、上記のスクリプトを記述して実行してみました。
そうしましたらタイムライン最後のフレームに行っても、
再生停止せずに、
すぐにループしてしまい最初のフレームに戻って再生されてしまいます。

パブリッシュプレビュー時には、下記のメッセージが表示されます。
「行6' { 'が必要です。」
「行9 予期しない' } 'があります。」
と表示されます。
上記のスクリプトですと、因みに行6とは…
「function rePlay(evt:TimerEvent):void { 」
となります。
行9とは…。
「 } 」となります。

今のままですと最後のフレームに行っても再生停止せずに、すぐに最初のフレームに
戻り再生されてしまうため、タイムラインをコントロールできていない状態です。

色々とお手数をお掛け致しますが、ご指導、ご回答をお願い足します。

投稿日時 - 2012-01-29 13:13:29

あわせてチェックしたい
  • flash actionscriptとタイムライン ...
  • FLASHの同一タイムラインで、複数のムービークリップを順に再生したい ...
  • as3.0でのフレーム移動制御のスクリプト ...
PR
記憶にのこっている野球選手は誰ですか?[ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら