// Start/Stopイベント
function OnStart_Stop()
{
var btn = document.getElementById("btn_ss");
if(btn.value == "start")
{
var startTime = new Date();
m_module.setPreference("start", startTime);
m_setSec = eval(document.getElementById("ddl_sec").value);
// 表示変更
btn.value = "stop";
var comment = eval(m_setSec/1000) + "秒たったらstopボタンを押して!"
SetComment(comment);
SetResult("0:00:000");
}
else if(btn.value == "stop")
{
var stopTime = new Date();
var startTime = m_module.getPreference("start");
// ミリ秒で計算
var senseTime = stopTime.getTime() - startTime.getTime();
// 表示用
var senseTime2 = new Date(senseTime);
// 表示変更
btn.value = "start";
SetResult(senseTime2.getMinutes() + ":" + senseTime2.getSeconds() + ":" + senseTime2.getMilliseconds());
var errTime = Math.abs(eval(senseTime - m_setSec));
if(errTime == 0)
ChoiceResultComment(0);
else if(errTime < 500)
ChoiceResultComment(1);
else if(errTime < 1000)
ChoiceResultComment(2);
else if(errTime < 2000)
ChoiceResultComment(3);
else
ChoiceResultComment(4);
}
}
以上のメインプログラムが「TimeSense.xml」から呼び出される。そしてスタイルシートファイルである「TimeSense.css」によって、最終的な表示装飾が定義されるのだ。
「時間感覚・TimeSense」は、ひと言でいえば前述したように「start」「stop」ボタンで動作するストップウォッチそのものだ。それに、選択した秒数と実際に「stop」した時間を比較して、利用者の時間感覚に対するコメントを表示するという、実にシンプルなLiveガジェットである。このようにシンプルでありながら、エンターテインメント色を考えていくことは、この手のLiveガジェットで大切だろう。
「ストップウォッチを渡されたら、10秒ちょうどで押せるかどうか試した経験を持つ人は多いことでしょう」。そう永井氏が語るように、誰もがいちどは挑戦したことのあるゲームは、Liveガジェット上で再現するアイデアの宝庫となるかもしれない。
そして永井氏は最後に改良するとおもしろいポイントを話してくれた。「0:00:000」と、1秒の下が0.001秒になっているわけだが、これが難易度となっておりなかなかピッタリと合わない理由だ。例えば「10秒」を指定しても、「0:10:001」ならば惜しいがピッタリではないと判定される。この判定の厳しさを難易度で切り替えることができれば、どうだろうか。
この判定部分や、指定する時間、そして表示されるコメントとそのタイミングは、数値を変更するなどすれば、簡単に変えることができるものだ。自分仕様の「時間感覚・TimeSense」を作ってみてはいかがだろうか。
Copyright © ITmedia, Inc. All Rights Reserved.