基礎から学ぶActionScript 3.0

getTimer()関数で時間の経過を調べる

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
フレームアニメーションで秒針を回します。getTimer()関数を使えば、コンピュータから時間の経過がわかりますので、精確に秒針が回せます。
講師:
06:16

字幕

タイムラインに置いた 秒針のインスタンスを タイマーのように 回してみたいと思います コンピューターが持っている 時間の経過を調べる getTimer () という関数を使うと 正確に秒針を回すことができます タイムラインに置いた 秒針のムービークリップインスタンスには インスタンス名として bar_mc という名前が 付けられています もっとも 今 フレームアクションに 書かれているスクリプトは コンピューターの時間を 調べてはいません どうなっているか スクリプトを確かめてみましょう キーフレームを右クリックで アクションパネルを開きます 1 行のステートメントは ただ単に インスタンスの回転角を 6 度 加算しているだけです どうなっているんでしょうか 今の動きを確認してみましょう ムービープレビューを行います 制御メニューから ムービープレビューです 確かに 動きは秒針のように見えます けれど これは正確な動きではありません 仕組みがどうなっているか もう一度確認しましょう なぜ 6 度回転しているかというと この 6 というのは 1 秒で回転する角度です そして タイムラインを見ると フレーム数が 12 あります フレームレートは 12fps になっています ということは このフレーム 最後まで行くのに 1 秒かかる ということですね そして最後まで行くと 先頭フレームにループします そうすると 6 度回転するということで 12 フレームを使って 1 秒間をカウントしている ということです ですから 見かけ上 確かに 秒針のように 1 秒刻みで動いているように見えます けれども 12fps というのは 必ずしも 1 秒間で 12 フレーム 絶対に再生するとは限りません 例えば 重たい描画の アニメーションがあったりすると 進行が遅れたりします つまり 12 フレームを動くのに 1 秒以上かかってしまうことも あるわけです ですから このアニメーションの作り方では 正確ではありません では どうしたら良いかというと コンピューターは時計を持っています ですから コンピューターの時計による 時間の経過を 調べることができれば 秒針を正確に動かせます コンピューターの時間の経過を 調べる関数として getTimer () と いうものがあります その getTimer () を まずご説明しましょう 時間の経過は getTimer () という関数で 調べられます getTimer () 関数は Flash Player が スタートしてから つまり SWF の再生が 開始してからの 経過時間をミリ秒で返します 「ミリ秒」というのは 1000 分の 1 秒のことです それから 「返す」というのは 関数が値を教えてくれることを プログラミングの用語で 「返す」と言います また 返された値のことを 「戻り値」 戻された値と書いて 戻り値と言います 単位がミリ秒ですから もし秒数を知りたいのであれば getTimer () / 1000 と いう風にして 変数に入れれば この変数の値が 経過秒数ということになります では getTImer () 関数を使って フレームアクションを書き換えます まずは 経過秒数を変数にとります var 宣言をして 変数は秒数ですので nSeconds にしましょう データ型は数値ですので Number です そして getTimer これはミリ秒ですので 秒数が欲しかったら 1000 で割り算します セミコロンで ステートメント 1 個 おしまいです そうしたら bar_mc の 回転角のプロパティ rotation に この秒数に 6 を掛けた値を 設定すればいいですね nSeconds を コピーします 注意点は 今までは毎回毎回 6 度加算したので プラスイコールとなっていますが 経過秒数になると この経過秒数が どんどん どんどん 増えていきますので 加算の必要はありません 経過秒数に 6 を掛けて 設定すればいいので プラスは消します アクションパネルは一旦閉じて ムービープレビューで 確かめてみましょう 制御メニューから ムービープレビューです フレームで 1 秒を カウントしていたときと 見た目では区別がつきません けれども getTimer () で 秒数をカウントしていますので 例えば 重たいアニメーションが あったとしても 経過秒数は正確にとれます 重たいアニメーションがあれば 一瞬 止まるかもしれませんが その止まった分だけ 大きく角度が変化して 必ず時間にキャッチアップする ということです では SWF のウィンドウは閉じましょう もう一度スクリプトを確かめて おさらいしましょう 右クリックで アクションパネルを開きます 今回使ったのは getTimer () という関数です この関数は Flash Player がスタートして つまり SWF が開いてからの 経過時間を 1000分の 1 秒単位で調べます 今回は 秒数を調べたかったので 1000 で割り算して 秒数に換算しました その上で その秒数に 6 度を掛ければ 一度あたりに動く角度になりますので 秒針と同じように アニメーションができるということです getTimer () を 使った時間の調べ方と それから その関数の戻り値を利用した アニメーションのご説明でした

基礎から学ぶActionScript 3.0

このコースではFlashのActionScript 3.0を初めて学ぶ方を対象に、ActionScriptの基礎から実際にプログラミングをするところまで学習していきます。簡単なスクリプトによるオブジェクトの操作の仕方から始まり、変数や関数といったプログラミングの基礎、そしてインタラクティブなコンテンツの作成まで詳しく解説いたします。

6時間30分 (49 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月16日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。