解決済みの質問
AS3.0でCS5です。
下記のようにタイムラインをコントロールする為のスクリプトを教えてください。
例えば、フレームは1フレームから100フレームまであるとします。ムービーが読み込まれてタイムラインが1から100まで移動します。その100フレームで一旦タイムラインが停止します。停止後、例えば3分後に、再びフレーム1に戻り、ムービーがスタート。その後同じように100フレームで停止…その後3分後に…と言う感じで、3分毎にムービーがスタート…1フレームに戻り100フレームで停止…それをエンドレスで行いたいのです。
その場合、1フレーム(又は100フレーム)に記述するスクリプトを教えてください。
よろしくお願い致します。
投稿日時 - 2012-01-28 23:19:00
#1ですが。。。
> パブリッシュプレビュー時には、下記のメッセージが表示されます。
> 「行6' { 'が必要です。」
> ~略~
> 行9とは…。
> 「 } 」となります。
は? 何が?
私はちゃんと作ってみて動作検証してから回答してるんです。
ちなみに
もう一度最初から100フレームのムービーを作ってみて
#1に書いたスクリプトをフレーム100のキーフレームにコピペしてみましたが
エラーも出ない上,ちゃんと動作もしましたよ【図】↓。
> タイムライン最後のフレームに行っても、
> 再生停止せずに、
> すぐにループしてしまい最初のフレームに戻って再生されてしまいます。
最終フレームに
stop();
だけを書いた場合も止まらないのでしょうか?
もし止まらないのであれば
すでに異常なことをされているということです。
投稿日時 - 2012-01-29 14:36:04
お礼
BlurFiltanさん:
いつも迅速な的確なご回答有難うございます。
そして、大変にお手数をお掛けいたしました。
早速ですが、タイムラインを新規に作成し、上記のスクリプトを再度記述して実行してみました。
そうしましたら、BlurFiltanさんの言うように動作いたしました…。
原因は、何かわからないのですが、正確な動作確認が出来ました。
いつも色々と有難うございます。
助かりました…本当に有難うございました。
投稿日時 - 2012-01-29 18:38:17
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~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