【コラム】
「FLash CS4」体験版ダウンロードはこちらから
「Adobe CS4」購入はこちらから
前々回と前回で、htmlとcssを利用して日時を表示する方法を検討してきた。今回は、日付をFlashから取り出し、htmlに反映してみよう。これ以降のソースファイルはこちらからダウンロードできる。
FlashではDateクラスを利用して日時を取り出す。こう、想像して欲しい。Flashの中には、いろんな能力のある小人が住んでいて、このDateクラスには日付と時間に関して詳しい小人がいる。クラスは、村や種族というところだろうか。クラスには、オブジェクトと呼ばれる小人がいて、DateクラスからはDateオブジェクトを生む(=作成する)ことができる。クラスからオブジェクトを作成するときは、新規に作成するという意味で「new クラス名()」とする。
new Date()
次のASをまっさらなFlashの1フレーム目に記述して、ムービープレビューしてみよう。(※ファイルはdw_test_00.fla)
trace( new Date() )
trace()は、出力パネルにFlashの計算結果などを表示する制作時にだけ使用する特別な命令なので、次のような結果が表示される。
これは、DateクラスからDateオブジェクトが作成された瞬間の時間を示している。
ところで、新しく作られた小人には、Flashが命令できる様に名前(名札)をつけておきたい。Dateオブジェクトが生まれても、識別できなければ、いないのと同じで、メモリからすぐに消えてしまうからだ。名札のことを「変数」、名前のことを「変数名」と呼び、生まれると同時につける。(人間の赤ちゃんに生まれるとすぐに名前を付けるのと似ている)それには、varという命令を使用する。すると、次のようになる。
var A = new Date()
これで「A」という名前(名札)の小人=Dateオブジェクトが作成された。この変数名には、若干のルールがある。これらは、すべてのプログラム言語で共通なので、覚えておくと良いだろう。
※予約語は命令と同じ単語だと思っておけば間違いはない。詳細はオンラインヘルプ『Flash 用 ActionScript 3.0 のプログラミング』の「ActionScript 言語とシンタックス-シンタックス-キーワードと予約語」にある)
そのルールに従いつつ、先ほどの「A」という変数名をDateオブジェクトの意味を考慮して「now」とした。
var now = new Date()
しかし、まだ、これだけでは正しく動作しない。それは、変数名に型(かた)といわれるタイプを指定していないからだ。「型」については、次で解説しよう。
変数名を「A」から「now」にすることで、人間が見たときになんとなく内容を推察しやすくなる。だが、人間の言葉を理解しないFlashにとっては「A」も「now」も同じ、アルファベットのつながりで、1文字か3文字かの違いくらいしかない。しかし、Flashが変数を処理するためには「A」も「now」もDateオブジェクトの変数であると知っていると便利だ。その方法が型を指定するということだ。具体的には、次のようにする。
var now:Date = new Date()
「:Date」が、変数名の後についた。コロンで区切った後のDateが、型といわれるものになる。newの時の型は、オブジェクトの型なので、迷った時はnewの後ろにあるオブジェクトの名前を指定すれば良い。それ以外にも、基本の型があるので、挙げておこう。なお、この表の内容は覚えなくても良い。むしろ、こういう表があるという事実だけを記憶しておき、必要なときに見返す程度で大丈夫だ。
| 型 | 範囲等 | デフォルト |
|---|---|---|
| Boolean | true/false | false |
| int | 整数-2,147,483,648~ 2,147,483,647 | 0 |
| Null | null | - |
| Number | 整数(int)、符号なし整数(uint)、浮動小数点 | NaN |
| String | 文字列 | null |
| uint | 符号なし整数 | 0 |
| void※ | undefined | undefined |
※function内でreturnを使用しないときの戻り値の型としてのみ使用する
また、オンラインヘルプでは、以下に解説が載っている。ここでは、変数を作るときには、型が必須ということを覚えておこう。
Adobe ActionScript 3.0 * データ型の記述
変数についてまとめると、次のようになるので、覚えておこう。
では、次のようなActionScriptをタイムラインの1フレーム目に記述してみよう。意味は「DateクラスからnowというDateオブジェクトの変数をvarを使って作成し、trace()を実行した」ということになる。DateクラスからnowというDateオブジェクトの変数をvarを使って作成し、trace()を実行してみよう。すると、次のようなASになる。新しいFlashファイルを用意したら、1フレーム目に記述する。(dw_test_01.fla)
var now:Date = new Date()
trace(now)
[制御]→[ムービープレビュー]で確認すると、次のように出力パネルに表示されるはずだ。
今回、Dateオブジェクトの作り方や、変数への格納方法を学んだ。オブジェクトが小人ならば、変数はその名前に当たるというイメージを覚えていてほしい。次回は「小人に仕事をしてもらう=Dateオブジェクトから日時を取り出す」方法を紹介しよう。
伊藤のりゆき(NORI)
有限会社トゴル・カンパニー代表。Flashエンジニア。ロクナナワークショップ講師。Flashアクセシビリティを得意とし、ライターとしてFlash関連書籍や雑誌記事の執筆を行うほか、AdobeTVでも解説。著書の「ActionScript3.0辞典」が発売中。内容のリクエストはTwitter(nori_togoru)まで。。
| 「Adobe Flash CS4」の3D効果を使いこなす(前編) [2009/4/14] |
| 「Adobe Flash CS4」の3D効果を使いこなす(後編) [2009/4/16] |
| 「Adobe Flash CS4」でオブジェクトベースアニメーションを実際に作る!(その1) [2009/4/2] |
| 「Adobe Flash CS4」でオブジェクトベースアニメーションを実際に作る!(その2) [2009/4/3] |
| Flashアニメクリエイター・青池良輔が語る「Adobe Flash CS4」の可能性とは [2009/3/25] |
| 【レポート】駆け出しイラストレーターのでこ、自分のDTPスキル不足を憂うの巻 [12:00 5/27] |
| 【連載】今さら人に聞けない!! Photoshopのショートカットキー講座 第26回 クイックマスクモード/画像描画モードの切り替え [13:00 5/26] |
| 世界最大のアップライトピアノの音色を再現するソフト音源「THE GIANT」 [12:00 5/26] |
| イーフロンティア、専用マニュアル付属の「LightWave 11」特別パッケージ [18:13 5/25] |
| 【レポート】駆け出しイラストレーターのでこ、最高の名刺を作るの巻 第三回 [17:00 5/25] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第108回 今回のお題は…「issue」 [20:00 5/27] キャリア |
|
TVアニメ『ペルソナ4』、新規カットを加えた再編集版を劇場でイベント上映 [20:00 5/27] ホビー |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |