時計を作ってみる

単純なデジタル時計サンプルです。 デジタル時計ではなく、アナログ時計を作るには、時間に応じて針の角度を計算して下さい。

layout.xml

「date」という名前のテキスト表示領域と「time」という名前のテキスト表示領域を作成しているのがポイントです。 このサンプルでは、毎秒このテキスト表示領域の内容を書き換えています。


<?xml version="1.0" encoding="UTF-8"?>
<Widget>
  <Component name="widget">
    <Bitmap name="initial-bg"/>
    <Component name="normal">
      <Text name="date" x="-120" y="-40" size="32"/>
      <Text name="time" x="-100" y="0" size="32"/>
    </Component>
    <Component name="focus" visible="0">
    </Component>
    <Component name="active" visible="0">
    </Component>
  </Component>
</Widget>

widget.js

layout.xmlで定義した「date」と「time」というテキスト表示領域のノードにたいして、毎秒setStrを行っています。 毎秒setStrを行うために、setIntervalを利用して、displayTimeという自作関数を呼び出しています。


var nodeNormal = getNode("normal");
var nodeDateText  = getChildNode(nodeNormal, "date");
var nodeTimeText  = getChildNode(nodeNormal, "time");

function onLoad() {
  displayTime();

  setInterval(displayTime, 1000 /*1sec*/);
}

function onUpKey() {
}

function onDownKey() {
}

function onRightKey() {
}

function onLeftKey() {
}

function onConfirmKey(type) {
}

function onFocus() {
}

function onUnfocus() {
}

function onActivate() {
}

function displayTime() {
  var timestr = getCurrentTime();

  var year  = timestr.substring(0,4);
  var month = timestr.substring(4, 6);
  var day   = timestr.substring(6, 8);

  var hour   = timestr.substring(8, 10);
  var minute = timestr.substring(10, 12);
  var second = timestr.substring(12, 14);

  setStr(nodeDateText, year + "/" + month + "/" + day);
  setStr(nodeTimeText, hour + ":" + minute + ":" + second);
}


サンプルダウンロード

digitalClockSample.zip

YouTubeチャンネルやってます!