基礎から学ぶActionScript 3.0

Math.floor()メソッドで小数点以下を切捨てる

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
経過時間の小数点以下の端数を切捨てれば、1秒刻みで秒針を回転させることができます。 この小数点以下を切捨てるのが、Math.floor()メソッドです。
講師:
07:08

字幕

少数を含む数値の 小数点以下を切り捨てて 整数にして返す Math.floor () メソッド に ついて ご紹介します ここでは 秒針のアニメーションを 1秒刻みにするために この Math.floor () メソッド を使います 今の Flash ムービー FLA ファイルの フレームアクションを確かめてみましょう スクリプト用のレイヤーの キーフレームで アクションパネルを開きます フレームアクションの 第 1 ステートメントは getTimer () 関数で Flash プレーヤーが起動してからの ミリ秒数を調べています それを秒数に直したいので 1000 で割り算をして 変数に入れています そして bar_mc というのは あの秒針の 針の インスタンスなんですけれども その rotation プロパティ 回転角を 秒数 掛ける 6 これが 1 秒あたりで回転する 度数ですね その値に設定しています 他方で タイムラインを見ると 12 フレームの アニメーションになっています 12 フレームが終わると 先頭フレームに戻りますので 12 フレームごとに このフレームアクションは実行されます そして フレームレートが 12 fps ですから 12 フレームを動くのに 1秒 大体ですけれどもね かかりますので 1 秒ごとに このスクリプトが実行され 1 秒ごとに 秒針が 動いているように見えるというわけです 一旦アクションパネルは閉じて 動作を確認してみましょう ムービープレビューです 制御メニューから ムービープレビュー 1秒刻みで 針が動いているように見えます では一旦 SWF を閉じましょう もう一度アクションパネルを開いて スクリプトを確認してみましょう キーフレームを右クリックで アクションです getTimer () で 経過時間を調べています その値を 1000 で割って 秒数にして 6 を掛けてる このことによって 経過時間に比例した角度に 針のインスタンスが設定されています 秒数と針の角度を 比例させる 一致させる というためには 何も別に 12 フレームある 必要はないですね 1 フレームだと アニメーションしませんので 2 フレームあれば 十分だと思います では 2 フレームに 縮めてしまいましょう アクションパネルは閉じます そして この 12 フレームあるフレームを 2 フレームに縮めるには 3 フレーム以降を削除しても構いません ただもうちょっと 簡単なやり方がありますので ご紹介しましょう キーボードから Windows は Ctrl キー Macintosh は Command キーを押しながら このフレームの 最後の縦線ですね ここにポインタを合わせると 左右の矢印になります この状態でドラッグすると 伸ばしたり 縮めたりできます 今回は 2 フレームに縮めます スクリプトは特に書き換えません このまま 動作を確認しましょう 制御メニューから ムービープレビューです 動きが滑らかになりました というのは 12 フレームごとでなく 2フレームごとになりましたので スクリプトの実行される回数が 増えているんですね でもちゃんと getTimer () で 経過時間を調べていますから 経過時間に従った角度に インスタンスが設定されています 1秒刻みにはなっていませんけれども この針の動きは 時間に正確に 秒数に正確に 動いているはずです でもやっぱり 1秒刻みにしたい という場合には 小数点以下 秒数の小数点以下を 切り捨てて 扱えばいいです その場合に使うのが Math.floor () メソッド です そのメソッドについて ご説明をしましょう SWF のウィンドウは閉じます Math.floor () メソッド は 少数を含む数値の 小数点以下を切り捨てて 整数にして返します Math. と付くのは 数学系の いろいろ便利な 関数 メソッドを含んでいます その中の floor が 切り捨てのメソッド ということになります 1 階 2 階を示す floor という 英単語と同じです 使い方は簡単で 括弧の中に数値 あるいは 数値を返す式を 入れてあげれば 小数点以下を切り捨ててくれます この秒針のアニメーションをさせる スクリプトでは 秒数の端数を切り捨てて 小数点以下を切り捨てて 設定すれば 1 秒刻みの動きになるはずです では スクリプト用のレイヤーの キーフレーム スクリプトが書いてあるフレームで 右クリックから ActionScript の アクションパネルを開きます フレームアクションの 2行目のステートメントです Math.floor () メソッド を ここに加えます Math.floor () コードヒントが出てきまして f と打った途端に floor がハイライトします ですからこれ Enter キーを押せば floor が入りました そして 変数の後で括弧を閉じます これでいいでしょう たまに間違えてですね 「6 掛ける」と この部分も 中に入れてしまう場合があります これはダメですね 確かに 小数点以下を 切り捨てるんですが 6 を掛け算するということは 度数に変わっています つまり 1 度刻みで 360 度回転することに なってしまいます 1 秒刻みというのは 6 度刻みでなければいけないので この「6 掛ける」の部分は 必ず外に出してください アクションパネルを一旦閉じて ムービープレビューで確かめてみましょう 制御メニューから ムービープレビューです 確かに 1秒刻みで動いてますね タイムラインには 2 フレームしかありませんので スクリプトは 2 フレームおきに つまり 6 分の 1 秒ごとに 実行しているんですけれども 秒数の小数点以下 端数が切り捨てられていますので その小数点以下を 切った上で 秒数が変わったときに 角度が変わっています ですから 1 秒刻み ということになるわけです では SWF のウィンドウは閉じましょう 小数値を含む数値の 小数点以下を切り捨てて 整数にして返すメソッド Math.floor () の使い方に ついて ご説明しました

基礎から学ぶActionScript 3.0

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

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

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

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

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