第3回:時計待ち受けを作ろう!

第3回←教材はこれ!

  • さ、実践的な待ち受け画面作成!
  • 早速サンプルをDLして自分のケータイで動作確認。動いてます。
  • FLASH CS4でプレビューしようとしたらDevice Centralが立ち上がった。
  • 再生できなかったぽいけどスタンドアローンモードにしたらプレビューできた。
  • FLASHチュートリアルでよくあるアナログではなくデジタルの時計。

PC版のFlash制作時にはダイナミックテキストにインスタンス名を割り振ることができますが、Flash Liteではそれを行うことができません。そのため、時計が表示されるダイナミックテキストには「dateTxt」、日付が表示されるダイナミックテキストには「timeTxt」という変数を指定していきます。

  • 「変数を指定」と「インスタンス名をつける」の具体的な大きな違いがよく分かりませんが読み進めます。

 今回のサンプルのスクリプトは、ステージ外の左上に配置してある空のムービークリップの1フレーム目にすべて記述しています。

  • これがenterFrameが使えないことの最大のポイントっぽい。
  • ユーザーが意識しない空のムービークリップてのがよく使われてそうな予感。

現在、空のムービークリップ内で処理を行っているため、1つ上の階層の変数に時計の表示テキストを代入していくのですが、今回は絶対パスで表記していきます。

  _root.timeTxt = Hours add ":" add Minutes add ":" add Seconds;

これで最初にステージに配置したテキストの変数と同期し、ダイナミックテキストに時間が表示されます。

  • えーと、パスがドットシンタックスになってるんだけどいいんだっけか。まざるなー。*1
  • 文字連結は「add」の利用。これは覚えてます。
  • 曜日表示のための配列的工夫。

wd0 = " [SUN]"//日
wd1 = " [MON]"//月
wd2 = " [TUE]"//火

 上記のように「wd」+「数値」という変数名をつけ、曜日ごとに表示させるテキストを設定しておき、日付表示の変数「dateTxt」に代入する時に「eval("wd" add weekday)」という感じで記述していきます。

  • eval()関数がそもそもどんな関数か分かんないから調べてみた。

eval 関数

 eval(expression: Object) : Objecteval(expression: String) : Object

変数、プロパティ、オブジェクト、ムービークリップに名前でアクセスします。expression が変数またはプロパティである場合は、変数またはプロパティの値が返されます。expression がオブジェクトまたはムービークリップである場合は、オブジェクトまたはムービークリップへの参照が返されます。expression に指定したエレメントが見つからない場合は、undefined が返されます。

http://livedocs.adobe.com/flashlite/2_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts_wEcute&file=00000155.html
  • この用途用ですね。
  • そして3ページ目はやはりアナログ時計化。動きがあるからね。
  • 1ページ目のダイナミックテキストへの変数名の与え方が分かんなかったんだけど、Flaファイル開いてよく見たら普通にプロパティとしてオプションのところに「リンク」や「ターゲット」に並んで「変数」欄がありそこで指定してました。納得−。

*1:変数を指定する時はドットシンタックスでもOKでした。