メイン コーダーズルーム【スクリプト系】 getTimerの制御方法(一時停止・再生) | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
野中文雄 | Åê¹ÆNo.3515 投稿日時: 2004-2-4 15:09 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: getTimerの制御方法(一時停止・再生) イベントハンドラメソッド(今回はMovieClip.onEnterFrame)は、明示的に削除(delete)するか、定義先のタイムラインがフレームから退場するまで存続し、(イベントが発生するかぎり)処理を続けます。ですから、計測時間のリセットをきちんと行えば、ひとつのスクリプトで継続して対処することが可能です。
引用: yuuyuuさんは書きました: ちなみに、ifステートメントの部分は、つぎのように簡略化することもできます。もっとも、タイプの手間が減るだけで、処理効率に基本的な変化はありません。詳しくは、[if (condition=1)]をご参照ください。
引用: yuuyuuさんは書きました: |
yuuyuu | Åê¹ÆNo.3512 投稿日時: 2004-2-4 14:55 |
常連 居住地: 茨城県 投稿: 118
使用環境:
Win2000,XP Flash MX2004 |
Re: getTimerの制御方法(一時停止・再生) Fumio様
お返事ありがとうございます。 おっしゃる通りです。 正直、1フレーム毎に呼び出すのはムダだなぁ、とは思っていましたがそれも今回のことも含め分からなかったことなのです。 でも今回お教えくださいました方法ですっきりと収めることができました。ただ、まだ最初のフレームのみでOKのコードの流れが感覚的に掴みきれていないので、これからじっくり解析しようと思います。 ありがとうございました。 引用:
|
yuuyuu | Åê¹ÆNo.3509 投稿日時: 2004-2-4 14:45 |
常連 居住地: 茨城県 投稿: 118
使用環境:
Win2000,XP Flash MX2004 |
Re: getTimerの制御方法(一時停止・再生) Komatsu様
早速のお返事ありがとうございます。 私のコーディングに+α、という形での実現方法をお教えいただけたので、自分に何が足りないかがとてもよく見えました。 また本題とは別ですが、true←→falseの切替えって" A = !A "たったこれだけでOKだったのですね。今までもっとまわりくどいやりかたしてました。 ありがとうございました。 |
野中文雄 | Åê¹ÆNo.3493 投稿日時: 2004-2-3 20:47 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: getTimerの制御方法(一時停止・再生) ひとつ気になったのは、元のスクリプトでは一旦フレーム移動が開始すると、MovieClip.nextFrame()メソッドは毎フレーム実行されてしまいます。
1フレームごとに10秒待つという処理ではないのでしょうか? もしかすると、すべてのフレームをキーフレームにして、この元のスクリプトをフレームアクションに設定しているのですか? だとすると、以下の修正で、フレームアクションは、最初のフレームに設定するだけで足ります。
|
野中文雄 | Åê¹ÆNo.3489 投稿日時: 2004-2-3 18:52 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: getTimerの制御方法(一時停止・再生) やり方は、いろいろあります。イベントハンドラメソッドを利用されているので、functionは使ってもよいのでしょうね。
なお、startは予約語です。timerなどの一般的な単語も、変数としては避けた方が無難です。 引用: yuuyuuさんは書きました: |
コマツ | Åê¹ÆNo.3488 投稿日時: 2004-2-3 18:29 |
職人 居住地: 東京都葛飾区 投稿: 356
使用環境:
windows7 CS5.5 CS6 |
Re: getTimerの制御方法(一時停止・再生) こんばんは。提案させてもらいました。
フレームの方に少し付け足して、theflg変数の状態でタイマーの確認の実行をさせます
ボタンの方には
とか入れてみるのはどうでしょう? ボタンを押したとき「theflg」が「true」←→「false」と 入れ替わります。 falseの時には現在どれくらいの時間が経っているかを変数に とっておきます。 trueになった時には、startの変数を初期化し、残りの時間を、 10秒から引いた値として再設定します。 ずっと、onEnterFrame でまわしているのも構造上良くない気 もしますが、現在のものに付け加えるなら、こんな感じで実現 できないでしょうか? 参考になれば幸いです |
yuuyuu | Åê¹ÆNo.3486 投稿日時: 2004-2-3 17:56 |
常連 居住地: 茨城県 投稿: 118
使用環境:
Win2000,XP Flash MX2004 |
getTimerの制御方法(一時停止・再生) こんにちは。
今、FlashMXで、CD-ROMコンテンツを制作しています。 で時間制御の方法でつまづいています。 1フレームごとにイメージ(JPG等)を配置し、下記コードをフレーム毎に実行して10秒経ったら次のフレームへ、というスライドショーです。 start = getTimer(); timer = 10*1000; this.onEnterFrame = function() { if (getTimer()>start+timer) { this.nextFrame(); } }; やりたいことは、一時停止ボタンを押すと、停止し、再生ボタンを押すとその続きの時間から再生させる(7秒で停止したとき、再生すると残りの3秒後に次へ進む)、ということなのですが、方法がわかりません。 タイムラインを伸ばしてstop()すれば簡単なのですが、ページが多く、それをやるとやたらとタイムラインが長くなるのでscript制御でやりたいのです。 ご教示頂けたら幸いです。 よろしくお願いします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |