こんにちは。
アババイ制作部ヘタレ代表の山脇です(´Д`)
テーマが「制作事例の紹介」と書きつつ、普段の業務では全く使わないものを紹介しようとしているのですが・・・
ところで、皆様がお持ちの携帯電話はスマホでしょうか?
ガラケーユーザーの方もいらっしゃることと思います。というよりも、思いたいです。
何故なら、私がガラケーユーザーだからです。
社内で唯一のガラケーです。かれこれ、6年間使用を続けております。
イアホン用のステレオ端子を探すのにも一苦労です。
ガラケーユーザーの方は、周りがスマホだらけで肩身が狭いと感じられることもあると思います。
そんな中でもガラケーを大切に使い続けている方に、使えるか使えないか分からないものを
プレゼントいたします。
カレンダー機能付き待ち受けフラッシュ
せっかくなので、どういう作りになっているかざっくりと解説…
(といっても私も独学ど素人なので、知識の偏り・欠陥がございます。予めご了承下さい。)
「フラッシュ」を作るには「Flash」というソフトが必要になります。
このソフトを使用して「swf」という形式で吐き出したものが所謂「フラッシュ」と呼ばれる動きのあるものになります。
ガラケーユーザーでFlashを持っているなんておかしな状況にいる人間は私くらいかもしれませんが;
ちょっと覚えて自分でカレンダーを作成してみたいという方は、更に続きを読んで頂けたらと思います。
動きのあるものを作るには、「Action Script」というプログラミング言語を使用します。
「プログラミング」という言葉だけで倦厭されそうですね…
そんな時は、ひらながに直すと親近感が湧いてきますよ。
「ぷろぐらみんぐ」
・・・(´Д`;)
Action Scriptは現在多く使われているものは「Action Script3.0」で、
他に「Action Script2.0」、「Acstion Script1.0」があります。
私のように大分前に発売された携帯電話の場合、表示が可能なAction Scriptが限定されます。
(因みに私の場合は2.0以下です。)
今回作成したフラッシュは2.0で作成致しました。
3.0で作成したものが表示できるなら、問題無く表示される…筈。
ここらで実際に記入したプログラムの中身を。
見る前に、一つ約束をして下さい。
学校で習った算数・数学の概念を一旦忘れて下さい。
算数や数学の考えが残っていると、前に進めなくなりますので…;
onEnterFrame = function() {
//Dateオブジェクトをインスタンス化
var today = new Date();
//月・日・曜日・年の取得
nowMonth = today.getMonth()+1;
nowDay = today.getDate();
nowWeekday = today.getDay();
nowYear = today.getFullYear();
//時間の取得
nowHour = today.getHours();
nowMinute = today.getMinutes();
nowSecond = today.getSeconds();
//月の表示方法の設定
if (nowMonth == 1) {
nowMonth = "January";
} else if (nowMonth == 2) {
nowMonth = "February";
} else if (nowMonth == 3) {
nowMonth = "March";
} else if (nowMonth == 4) {
nowMonth = "April";
} else if (nowMonth == 5) {
nowMonth = "May";
} else if (nowMonth == 6) {
nowMonth = "June";
} else if (nowMonth == 7) {
nowMonth = "July";
} else if (nowMonth == 8) {
nowMonth = "August";
} else if (nowMonth == 9) {
nowMonth = "September";
} else if (nowMonth == 10) {
nowMonth = "October";
} else if (nowMonth == 11) {
nowMonth = "November";
} else {
nowMonth = "December";
}
//曜日の表示の設定
if (nowWeekday == 0) {
nowWeekday = "Sunday";
} else if (nowWeekday == 1) {
nowWeekday = "Monday";
} else if (nowWeekday == 2) {
nowWeekday = "Tuesday";
} else if (nowWeekday == 3) {
nowWeekday = "Wednesday";
} else if (nowWeekday == 4) {
nowWeekday = "Thursday";
} else if (nowWeekday == 5) {
nowWeekday = "Friday";
} else {
nowWeekday = "Saturday";
}
//日にちの表示方法の設定
if (nowDay == 1) {
nowDay = nowDay + "st.";
} else if (nowDay == 21) {
nowDay = nowDay + "st.";
} else if (nowDay == 31) {
nowDay = nowDay + "st.";
} else if (nowDay == 2) {
nowDay = nowDay + "nd.";
} else if (nowDay == 22) {
nowDay = nowDay + "nd.";
} else if (nowDay == 3) {
nowDay = nowDay + "rd.";
} else if (nowDay == 23) {
nowDay = nowDay + "rd.";
} else {
nowDay = nowDay + "th.";
}
//時間の表示方法の設定
//10時より前の時間の時、01,02...と表示する
if (nowHour < 10) {
nowHour = "0" + nowHour;
}
//10分未満の時、01,02...と表示する
if (nowMinute < 10) {
nowMinute = "0" + nowMinute;
}
//10秒未満の時、01,02...と表示する
if (nowSecond < 10) {
nowSecond = "0" + nowSecond;
}
//画面に表示
nowDate.text = nowWeekday + "," + nowMonth + "." + nowDay;
year.text = nowYear;
nowTime.text = nowHour + ":" + nowMinute + ":" + nowSecond;
}
プログラムに一通り目を通しながら、約束事を忘れた方。
「何で?」ってお思いになられたことと思います。
(;´Д`)< イコールが二つって何?
(:´Д`)< 何で同じものじゃないものがイコールで結ばれているの?
(;´Д`)< その足し算どうなっているの?
・・・色んな疑問の声が聞こえてきそうですね。
申し訳ないですが、全部に答えられる程の知識も技術もありません;
私も教えてほしいくらいです…
ASのみでなく、他のプログラミング言語と呼ばれるものに共通することですが、
「=」は「等しい」という意味でもあるのですが、「中身が同じもの」と捉えた方が
解りやすいかもしれません。
「チョット何言っているか分からん」っていう方の為にもう少々解説を・・・
例)if (nowMonth == 1) {
nowMonth = "January";
}
カレンダーを表示するのに、まず年月や時間を取得するのですが、
何もしないと取得した数字がそのまま表示されます。
上記の場合、月として取得した「1」を「January」という言葉で表示したい場合、
「January」という言葉に変換する必要があります。
イメージと致しましては、「nowMonth」と名付けられた箱があり、
その中には「1」というものが入っているのですが、そこに代わりに「January」という
ものを入れた状態です。
「==」は「=」よりも厳密に等しいという意味です。
ここまで来ると「データ型」とかいう言葉が出てきて話がややこしくなってきます…。
すみません。すっ飛ばします。
「+」は算数や数学と同じように「加算する」という役割がありますが、
「つなげる」という役割があります。
どういうことかと申しますと・・・
最後の3行の部分
nowDate.text = nowWeekday + "," + nowMonth + "." + nowDay;
これは、「曜日」「,」「月」「.」「日」の順番に文字を表示するという意味です。
個人的に条件分岐がやりやすくて好きなので、その辺の話もしたいところですが…
(本当は配列の方がコードが短くて済むからそっちをお勧めするべきですが、
その辺の知識が曖昧なもので;)
長くなりましたので、この辺で。
最後までお目通し頂いた心優しい皆様へ…
冗漫な文章にお付き合い頂き、ありがとうございました。