携帯Flashの作製方法 デジタル時計を作ろう1-2

ほとんどの人が「デジタル時計を作ろう1」で早速テキトーに携帯Flashの時計を作って、自分の携帯に落とした時に思う感想としては、「…なんかショボイ」がほとんどではないだろうか? そう、あのまんまだと携帯のデフォルトのFONTで数字などが表示されるんで、なんとも言えない味気なさが漂ってしまう。

それとプラスして、携帯Flashで曜日が表示されない問題も一緒に解決いたしましょう。かんたんです。

まずはダイナミックテキストを選択ツールで選択すると、プロパティでフォントを選べるようになりますので、そこで好きなフォントを選んで 右下の「埋め込み」ボタンを押すだけ。

02-2
02-1

そうすると右のようなダイアログが出るんで、自分が埋め込みたいもの(数字とかアルファベットの大文字or小文字とか)を選んでオッケーボタンを押せば完了。フォントを埋め込むことに なるんで、その分データ量が増えてしまうけども、微々たるものなんであんま気にしなくて大丈夫。

これをやって書き出せば、携帯で見たときもちゃんとその指定のフォントで表示されます。やったね!んで、「1-2」で行ったように、曜日が表示されない場合、 曜日のダイナミックテキストにアルファベットを埋め込んであげないと、携帯上で表示されないみたいです。

んで、もうひとつの問題、デザイン的にちょっと見栄えがおかしいという件ですが…。下の図をみてもらうと分かると思いますが、 ようは埋め込んだ文字がプロポーショナルフォントの扱いになってしまい、1と8だったり、iとwで文字の幅が変わってしまうのです。

04-3

なので、これを解消するためにまずは時間、分、秒を表示していたダイナミックテキストをすれぞれ1桁目、2桁目でバラバラにします。そしてそれぞれに 変数名として時間は「hour2」「hour1」、分は「min2」「min1」、秒は「sec2」「sec1」とつけます。こうすればテキストボックスの幅は変わらないので 常に一定の幅で数字が表示されることになります。

04-4

あとはactionレイヤー1フレーム目に、ActionScriptを書くだけ。

/* ----時間の取得---- */
watch = fscommand2("GetLocaleTime", "time");
/* ----時間をそれぞれ変数に代入---- */
sec1 = substring(time, 8, 1);
sec2 = substring(time, 7, 1);
min1 = substring(time, 5, 1);
min2 = substring(time, 4, 1);
hour1 = substring(time, 2, 1);
hour2 = substring(time, 1, 1);

2フレーム目の…

gotoAndPlay(1); 

も忘れずに!

substringは位置を指定する命令です。今回の場合だと"GetLocaleTime"で取得した時間(12時54分27秒だった場合は012:54:27となります)の左から何番目の数字を何個取ってくるか… みたいなことが書かれています。ということなんで、ここの数字をメチャクチャに変えてしまうと、表示も同じようにメチャクチャになってしまうので、嫌がらせしたい時以外は そっとしておくのが良いかと思われますです、はい。

で、年、月、日にちも時間と同じようにやってあげましょう。下図のようにそれぞれ変数をつけてあげてください。

04-4

でactionレイヤー1フレーム目に、ActionScriptを追加。

/* ----年の取得---- */
years = fscommand2( "GetDateYear" );
/* ----月の取得---- */
month = fscommand2( "GetDateMonth" );
if (length(month)==1){
	month='0' add substring(month,0,1);
}else{
	month=month;
}
/* ----日にちの取得---- */
day = fscommand2( "GetDateDay" );
if (length(day)==1){
	day='0' add substring(day,0,1);
}else{
	day=day;
}

year1 = substring(years, 4, 1);
year2 = substring(years, 3, 1);
year3 = substring(years, 2, 1);
year4 = substring(years, 1, 1);
month1 = substring(month, 2, 1);
month2 = substring(month, 1, 1);
day1 = substring(day, 2, 1);
day2 = substring(day, 1, 1);

これで大体デザインした通りの表示がされるとは思います。

つぎは、携帯Flashで数字などを自分で作成した画像で表示させる方法を書きます。

今回作製したflaファイル