• ベストアンサー

getTimer() について

変数として、何秒経過したか、という値を使用するために getTimer() を使用して経過秒数を取得しています。 1回目は0秒から始まるのでいいのですが、2回目、3回目となるとズレが出てきますよね。 で、getTimer()を行うたびに、0から始めたいのですが、どのようにすればいいのでしょうか?

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

getTimer は、ムービーが再生され始めてからの経過時間を取得する関数です。この経過時間は Flash Player が内部で管理しているものですので、ユーザーの都合で0にリセットしたり、任意の時間に書き換えたりすることはできません。 しかし、「ムービーが再生されてから○○ミリ秒経過した」という情報は、加工の仕方次第では時間の処理にも利用できます。 例えばストップウォッチなどのように、計測し始めの時点での getTimer の戻り値と、ストップボタンが押された時点での getTimer の戻り値をそれぞれ変数に保存しておいて、その差で何ミリ秒経過したかを知ることもできます。 getTimer の単位はミリ秒ですから、算術的に加工して分や秒に直すことも可能です。 なお、Flash には時刻を取得できる Date というオブジェクトもありますが、Macではミリ秒単位の時間が取得できない(必ず0が返される)など、ひとクセあるオブジェクトですので、細かい単位の時間の処理は getTimer を利用した方が無難のようです。

w-inty
質問者

お礼

回答ありがとうございます。 やはりgetTimerの値に手を加える、ということは無理のようですね。 おっしゃっていたのをちょっと改良して、 getTimerの値、1つの動作が終わった後の時間とgetTimerの差、全ムービーが終わった後の時間、などを求めていろいろ組み合わせて、希望のことができました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Flashについて

    現在FlashCS5 actionscript2.0でサイトを制作しております。 内容としましては、TOPページに簡易的な音楽プレーヤー(再生・停止・一時停止)が あり、サイト訪問時に音楽が再生するというものです。 今回の質問なのですが、初回訪問時に音楽再生をさせ、2度目以降の訪問時には 音楽をとめる。ただし、再生ボタンを押すと再び音楽が再生するということを行いた いのです。 色々調べてみて、下記の方法が近いのではと思いました。 ただ、下記の方法だと再生ボタンが効かなくなってしまいます。 なにか良い方法はありませんか? ------------------------------------------------------------------------------- 【Flash Q&A参照】 アクションレイヤー、1フレームのフレームアクション・・・ span = 15; ←変数spanを定義、そこに一定の秒数以内の値を設定(例は「15秒以内」)  nowDate = new Date(); ←現在年月日時分秒を取得、nowDateというDateオブジェクトを作成  nowAC = nowDate.getTime(); ←その時点の世界標準時点からの経過ミリ秒をnowACに代入  cookie = SharedObject.getLocal("accessTime"); ←cookieという名のHD読書きオブジェクト  if (cookie.data.beforeAC != undefined) { HD変数beforeACが未定義でないなら    Time = Math.floor((nowAC-cookie.data.beforeAC)/1000); ←Timeに経過秒数を代入    cookie.data.beforeAC = nowAC; ←HD変数beforeACに今回経過ミリ秒を保存    if (Time < span) { 経過秒数が、変数spanの値より小さいとき      this.gotoAndStop("menu"); ←”menu”フレームに移動して停止    }  } else { そうでない(初回アクセス)なら    cookie.data.beforeAC = nowAC; ←HD変数beforeACに今回経過ミリ秒を保存  } -------------------------------------------------------------------------------

  • 【Flash8】時間処理、初期化

    getTimer() を使って 時間を変数にいれて1000分の1とかで 割って、ダイナミックテキストで表示させてるのですが それをリセットする方法ありますか? http://fpower.org/old/f4timer.htm こっちは初期化する方法がなくて、 自分の探し方が悪いかもしれませんが 0秒にする方法が見つからなくて。 自分で試した方法が↓ 初期化したい時間を代入している変数 = null; 初期化したい時間を代入している変数 = 0; これでも駄目で。。。 方法知っている方がいらっしゃいましたら 教えてください! お願いします。

    • ベストアンサー
    • Flash
  • シャフトとシャフトを角度を持って接続するには?

    お世話になります。 シャフトφ40を、角度112度で接続したいです。 また、シャフトは、回転を伝えられなければ いけません。 とは言っても、回転は 5度と少ない回転角度と なります。 回転は、60秒で60回 発生します。1秒で1回、ひねりですね。 また、0.5秒で、5度回転したら、0.5秒で、元に戻ります。 ですから、一方向に、回転してゆくわけではありません。。 (秒数は、おおざっぱなタイムです) また、ガタ(バックラッシュ)無しが望ましいです。 水が掛かる 場所なので、錆びても困ります。 このような条件で、使用出来る 接続継ぎ手を教えて 下さい。 通常のユニバーサルでは角度が足りません。 皆様、良い方法を教えて下さい。

  • dvd2aviで音声がずれる

    dvd2aviを使い昔とった映像をDVDからaviにしようと思い、DVD2aviを使い変換をしてaviを作りましたが、音声が2分弱ずれてしまいます。 音ずれがあったときはその秒数がわかるようになっていたと思いますが、表示は何秒遅れるかわかるようになっていましたが、音ずれがないような表示となっているのですが。 コレで音ずれがあったので、autoGKを使っても音ずれが起きます。 DVDの映像には音ずれはないのですが。 音ずれを直す方法は如何すればよいのでしょう? すいませんが宜しくご指導をお願いいたします。

  • 秒数が3ケタの緯度経度の意味は?

    GPSで計測した地点の緯度経度の秒数が3ケタで表示されました。 (例:北緯35度26分900秒、東経139度43分723秒) 秒は60までの2けただとおもっていたのですが、3ケタの秒数はいったいどういう意味なのでしょうか?場所を地図で検索したくても秒数で3ケタ対応のところがなく困っています。2けたの秒と3ケタの秒の違いはなんでしょうか。また、この場合の検索の仕方も教えていただけると助かります。

  • formで変数値を送信

    はじめまして。f0011048と申します。 formで変数の値を送信したいのですが、そのやり方がわかりません。 よろしければ教えて頂けないでしょうか。 具体的には、ページを表示してからの経過時間を測定して、 <input type="hidden" name="jikan" value="time"> といった感じで送信します。 経過時間はタイマー関数によって、変数timeとして取得します。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • ACCESS2003 でクエリの抽出条件に変数を代入したい。

    ACCESSVBAのLoopを使用して、Aテーブルのb列入っている値を1行ごとに取得し変数に入れます。その変数をクエリの条件に入れたいのですが、どのようにすればよいでしょうか? 1行目の値取得→変数に代入→クエリを実行→2行目に移動...最終行まできたら処理を終える という流れでお願いします。

  • 経過時間を表示させたい(C言語)

    今以下のようなプログラムを作っています。問題の部分だけ載せておきます。  ・  ・  ・ a=0; b=0; time(&t1); for(○;△;□){ X番目の素数を表示させるアルゴリズム; time(&t2); b=t2-t1; if(a<b){ a=b; printf("%d秒経過...\n",a); }  ・  ・  ・ これですと経過時間は 1秒経過... 2秒経過... 3秒経過...  ・  ・  ・ と表示されるのですが、僕が目指しているのは、例えば、2秒経過したら「2秒経過...」という表示を「1秒経過...」を消してそのところに表示させたいのです。 つまり、まるで秒数の部分だけ変化しているように見せたいのです。 もし、やり方が分かる方がいましたら教えていただけると嬉しいです。ぜひともよろしくお願いします。

  • EXCEL2010 VBA 変数への代入

    EXCEL2010のVBAを使用しています。 処理で繰り返しの処理があります。 繰り返しのたびに変数Aに変数A+セルの番地(A1等)を代入していきたいのですがうまくいきませんどうすればよいでしょうか? 説明が下手ですみません。 ようするに変数の中の値を上書きせずに、現在の値を後ろに追加したいということです。 (例) 変数Bは最初は「1」 繰り返し1回目  変数A =変数A&Cells(1,変数B)   ’変数Bは繰り返しのたびに1ずつ増えます 繰り返し2回目  変数A =変数A&Cells(1,変数B) 一回目は変数AにはA1が入る 2回目の処理時にはA1B1というふうになり、上書きされず追加で代入される。 というようなイメージです。

  • Excelで経過秒数から年:月:日:秒を算出するには

    Excelで経過秒数からX年Xヶ月X日X秒を算出するにはどのような計算式となりますでしょうか