【コラム】

クリエイティブ初心者のためのFlash講座

18 ActionScriptを活用してデジタル時計を作成する(後編) -変数について学ぶ

    伊藤のりゆき(NORI)  [2010/02/15]
    「FLash CS4」体験版ダウンロードはこちらから
    「Adobe CS4」購入はこちらから

    前々回と前回で、htmlとcssを利用して日時を表示する方法を検討してきた。今回は、日付をFlashから取り出し、htmlに反映してみよう。これ以降のソースファイルはこちらからダウンロードできる。

    日付を取り出す -Dateクラス

    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で使う命令などの予約語(※)はそのまま使用しない(_を付けたりしよう)


    ※予約語は命令と同じ単語だと思っておけば間違いはない。詳細はオンラインヘルプ『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 * データ型の記述

    変数まとめ

    変数についてまとめると、次のようになるので、覚えておこう。

    • Flashで、変数を使うときは、var で作る。
    • var を使うときには、型が必須。
    • 次のような書式で実行する。
      var 変数名:型 = 値

    では、次のような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)まで。。

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン