- 締切済み
getTimerの(一時停止・再生)
やりたい事は、一時停止ボタンを押すと、停止し再生ボタンを押すとその続きの時間から再生させる、ということなのですが方法がわかりません。 ご教示頂けたら幸いです。よろしくお願いします。 AS2 CS4 です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
#1です。 すみません。 // 再生ボタン(MC) start_mc クリック時の動作を定義 start_mc.onRelease = function() { // クリック時の時間を取得 var time0 = getTimer(); //1フレーム進む時間毎に毎回実行 _root.onEnterFrame = function() { // 変数 HEENSUU に クリックされてからの時間を代入 HENSUU += (getTimer() - time0); // 時間表示用のテキストにその時間(秒)を表示 time_txt.text = HENSUU/1000; }; }; ↑ここが間違っていました(朝なのでまだ寝ぼけてる...)。 間違っているのは上記部分だけですが ややこしいのでもう一度コピペスクリプト全文を書き直します。 新規ドキュメントを作成して, フレーム1 に コピペ してパブリッシュするだけでできるサンプル↓ ============================================== // ---↓手動作成の場合は以下不要↓------ // 時間表示用のテキストフィールド time_txt を作成 this.createTextField("time_txt", 0, 10, 10, 0, 0); time_txt.autoSize = true; time_txt.text = 0; // // 再生ボタン(MC) start_mc を作成 this.createEmptyMovieClip("start_mc", 1); start_mc.createTextField("_txt", 0, 10, 40, 10, 40); start_mc._txt.autoSize = true; start_mc._txt.border = true; start_mc._txt.background = true; start_mc._txt.text = "再生"; // // 一時停止ボタン(MC) stop_mc を作成 this.createEmptyMovieClip("stop_mc", 2); stop_mc.createTextField("_txt", 0, 10, 70, 0, 0); stop_mc._txt.autoSize = true; stop_mc._txt.border = true; stop_mc._txt.background = true; stop_mc._txt.text = "一時停止"; // ---↑手動作成の場合は以上不要↑------ // 時間をとっておく変数 HENSUU の初期化 var HENSUU = 0; // 再生ボタン(MC) start_mc クリック時の動作を定義 start_mc.onRelease = function() { // 変数 HENSUU を time0 にとっておく var time0 = HENSUU; // クリック時の時間を取得 var time1 = getTimer(); //1フレーム進む時間毎に毎回実行 _root.onEnterFrame = function() { // 変数 HENSUU に 経過時間の合計を代入 HENSUU = time0 + (getTimer() - time1); // 時間表示用のテキストに経過時間(秒)を表示 time_txt.text = HENSUU/1000; }; }; // 一時停止ボタン(MC) stop_mc クリック時の動作を定義 stop_mc.onRelease = function() { //1フレーム進む時間毎に毎回実行するメソッドを削除 delete _root.onEnterFrame; }; ==============================================
- BlurFiltan
- ベストアンサー率91% (1611/1754)
単純に,経過時間を何かの変数にとっておいて, 「再生」ボタンクリックでその変数に経過時間を加算し, 「一時停止」ボタンクリックでその経過時間の加算をやめれば良いのではないでしょうか。 新規ドキュメントを作成して, フレーム1 に コピペ してパブリッシュするだけでできるサンプル↓ ============================================== // ---↓手動作成の場合は以下不要↓------ // 時間表示用のテキストフィールド time_txt を作成 this.createTextField("time_txt", 0, 10, 10, 0, 0); time_txt.autoSize = true; time_txt.text = 0; // // 再生ボタン(MC) start_mc を作成 this.createEmptyMovieClip("start_mc", 1); start_mc.createTextField("_txt", 0, 10, 40, 10, 40); start_mc._txt.autoSize = true; start_mc._txt.border = true; start_mc._txt.background = true; start_mc._txt.text = "再生"; // // 一時停止ボタン(MC) stop_mc を作成 this.createEmptyMovieClip("stop_mc", 2); stop_mc.createTextField("_txt", 0, 10, 70, 0, 0); stop_mc._txt.autoSize = true; stop_mc._txt.border = true; stop_mc._txt.background = true; stop_mc._txt.text = "一時停止"; // ---↑手動作成の場合は以上不要↑------ // 時間をとっておく変数 HENSUU の初期化 var HENSUU = 0; // 再生ボタン(MC) start_mc クリック時の動作を定義 start_mc.onRelease = function() { // クリック時の時間を取得 var time0 = getTimer(); //1フレーム進む時間毎に毎回実行 _root.onEnterFrame = function() { // 変数 HEENSUU に クリックされてからの時間を代入 HENSUU += (getTimer() - time0); // 時間表示用のテキストにその時間(秒)を表示 time_txt.text = HENSUU/1000; }; }; // 一時停止ボタン(MC) stop_mc クリック時の動作を定義 stop_mc.onRelease = function() { //1フレーム進む時間毎に毎回実行するメソッドを削除 delete _root.onEnterFrame; }; ==============================================