「FLash CS4」体験版ダウンロードはこちらから
「Adobe CS4」購入はこちらから
前回、DateクラスからDateオブジェクトを生成し変数にする(代入という)方法を紹介したが、今回はそのDateオブジェクトから実際に日時を取り出してみよう。なおソースファイルはこちらからダウンロードできる。
Dateオブジェクトから、日時を取り出す
Dateオブジェクトには、日時のデータが備わっている。たとえば、nowというDateオブジェクトから「年」を知りたいときは次のようにする。(※ソースファイル dw_test_02.fla)
var now:Date = new Date();
trace(now.fullYear);
nowとfullYearの間にある「.(ドット)」は、「■の中の●●」という意味の区切り文字で、この場合、「変数 now の中にあるfullYear」となる。ムービープレビューすると、次のように出力パネルに表示されるはずだ。このとき、nowは、fullYearや後で紹介するその他のプロパティと呼ばれる変数をグループ化して持っている。
2010が年であることを示すために、「2010年」と表示するなら、tarce()の行を次のように変更する。(※ソースファイル dw_test_03.fla)
trace( now.fullYear + "年" );
trace()の中を見ると、"(ダブルクォーテーション)で囲まれた部分をリテラル値、あるいはリテラル文字という。これは、そのまま表示する文字であるということだ。この場合、"年"がそれにあたる。
片方が文字の場合、「+」を使用するとその前後を繋げることが可能だ。ここでは、now.fullYear で置き換えられる 2010 と"年"を「+」でつなげて、"2010年" を出力したというわけだ。(※2010の型はNumber、"年"の型はStringだが、trace()は自動的にNumberをStringに変換するため、+でつなげることができる。)
他の情報も取得する
Dateオブジェクトから年以外の、月や日などを取得する方法も同様の手順でOKだ。オンラインヘルプにある内容を表にしてみた。
Dateオブジェクトの代表的なプロパティ
プロパティ名 | 意味 |
---|---|
fullYear | 4桁の年を表す数値 |
month | 月を表す0~11の数値(0…1月、1……2月、11……12月) |
date | 日付けを表す1~31の数値 |
day | 曜日を表す0~6の数値 |
hours | 時間を表す0~23の数値 |
minutes | 分を表す0~59の数値 |
seconds | 秒を表す0~59の数値 |
※プロパティとはオブジェクト内にある変数のことで、上記プロパティは、すべてNumberという型になっている。
上記を参考に図のように出力パネルに出すASは、例のようになる。(※ソースファイル dw_test_04.fla)
var now:Date = new Date()
trace(now.fullYear + "." + (now.month+1) + "." + now.date)
解説をすると、「now.fullYear」は、4桁の年を示す。同じく、now.monthは、月の数字を返すが、0から始まるので1加算するように「+1」を計算式として追加した。文字の場合と異なり「+」記号の前後が数値ならば普通の四則演算を実行する。
最後の、「now.date」は日付を返す。また、これらの間を「 "." 」でつなげるために、「 + "." + 」とそれぞれの値の間に入れている。
変数を上手に利用してプログラムを整理
ここで、少しプログラムを見やすく整理しよう。ここまで、次のようなプログラムを書いた。(※ソースファイル dw_test_04.fla)
var now:Date = new Date()
trace(now.fullYear + "." + (now.month+1) + "." + now.date)
実は、これをもっと分かりやすく書くことができる。それが、次のものだ。(※ソースファイルdw_test_05.fla)
var now:Date = new Date()
var year:Number = now.fullYear
var month:Number = now.month+1
var date:Number = now.date
trace( year + "." + month + "." + date )
これを前のものと比べると、違いがいくつかある。
- varで始まる行数がふえた。
- trace()の内容がシンプルになった
注目して欲しいのは、最後の出力するところがシンプルになったことだ。そのために、行数は増えているが、1行を短く、シンプルな機能にしているので理解しやすいはずだ。むしろ、trace()が整理された分、改造がしやすくなっているはずだ。
たとえば「2010年1月20日」と出したい場合、trace()の行を次のようにすればよい。
trace(year+ "年" + month + "月" + date + "日")
※ソースファイル dw_test_05.flaのコメント(最初の//)を外してムービープレビューしてみて欲しい。
今回、Dateオブジェクトであるnowから日付情報を取り出すことができたので、次はそれをhtmlテキストにして表示してみよう。次回からは、このtrace()をhtmlテキスト表示に変更してみよう。
伊藤のりゆき(NORI)
有限会社トゴル・カンパニー代表。ロクナナワークショップ講師。Flashアクセシビリティを得意とし、ライターとしてFlash関連書籍や雑誌記事の執筆を行うほか、AdobeTVでも解説。共著の「ActionScript3.0辞典」が発売中。また、先頃、写真家として初の写真集「「Snap or Nothing写真集」( iTunes AppStoreにて)が発売された。内容のリクエストはTwitter(nori_togoru)まで。