画像ファイルを使ったグラフィカルな時計を表示する
プログラムです。これは、Explorer3.0,Netscape2.0では動かないと思われます。
元々私がJavaの練習に作ったものをJavaScriptに移植したものです。

98/03/24 バグ取りをしました。
修正したところはで書かれています。


下のリンクより実際の動きを見られます。
確認後はブラウザの "戻る" ボタンで戻ってください。

JavaScript版   Applet版


  1. <HTML>
  2. <HEAD>
  3. <TITLE>Clock</TITLE>
  4. </HEAD>
  5. <SCRIPT LANGUAGE="JavaScript">
  6. <!--
  7.   timerID = 10;
  8.   testImage = new Image();
  9.   testImage.src="../applet/n_0.gif";
  10.   testImage.src="../applet/n_1.gif";
  11.   testImage.src="../applet/n_2.gif";
  12.   testImage.src="../applet/n_3.gif";
  13.   testImage.src="../applet/n_4.gif";
  14.   testImage.src="../applet/n_5.gif";
  15.   testImage.src="../applet/n_6.gif";
  16.   testImage.src="../applet/n_7.gif";
  17.   testImage.src="../applet/n_8.gif";
  18.   testImage.src="../applet/n_9.gif";
  19.   function clock(){
  20.     clockThread = new Date();
  21.     y = "0"+clockThread.getYear();
  22.     m = "0"+(clockThread.getMonth()+1);
  23.     d = "0"+clockThread.getDate();
  24.     h = "0"+clockThread.getHours();
  25.     n = "0"+clockThread.getMinutes();
  26.     s = "0"+clockThread.getSeconds();
  27.     y = y.substring(y.length-2,y.length+1);
  28.     m = m.substring(m.length-2,m.length+1);
  29.     d = d.substring(d.length-2,d.length+1);
  30.     h = h.substring(h.length-2,h.length+1);
  31.     n = n.substring(n.length-2,n.length+1);
  32.     s = s.substring(s.length-2,s.length+1);
  33.     y0 = y.substring(0,1);
  34.     y1 = y.substring(1,2);
  35.     m0 = m.substring(0,1);
  36.     m1 = m.substring(1,2);
  37.     d0 = d.substring(0,1);
  38.     d1 = d.substring(1,2);
  39.     h0 = h.substring(0,1);
  40.     h1 = h.substring(1,2);
  41.     n0 = n.substring(0,1);
  42.     n1 = n.substring(1,2);
  43.     s0 = s.substring(0,1);
  44.     s1 = s.substring(1,2);
  45.     document.y0_d.src = "../applet/" + "n_" + y0 + ".gif";
  46.     document.y1_d.src = "../applet/" + "n_" + y1 + ".gif";
  47.     document.m0_d.src = "../applet/" + "n_" + m0 + ".gif";
  48.     document.m1_d.src = "../applet/" + "n_" + m1 + ".gif";
  49.     document.d0_d.src = "../applet/" + "n_" + d0 + ".gif";
  50.     document.d1_d.src = "../applet/" + "n_" + d1 + ".gif";
  51.     document.h0_d.src = "../applet/" + "n_" + h0 + ".gif";
  52.     document.h1_d.src = "../applet/" + "n_" + h1 + ".gif";
  53.     document.n0_d.src = "../applet/" + "n_" + n0 + ".gif";
  54.     document.n1_d.src = "../applet/" + "n_" + n1 + ".gif";
  55.     document.s0_d.src = "../applet/" + "n_" + s0 + ".gif";
  56.     document.s1_d.src = "../applet/" + "n_" + s1 + ".gif";
  57.     clearTimeout(timerID);
  58.     timerID = setTimeout('clock()',1000);
  59.   }
  60. //-->
  61. </SCRIPT>
  62. <BODY onLoad="setTimeout('clock()',1000)">
  63. <SCRIPT LANGUAGE="JavaScript">
  64. <!--
  65.   document.write("<IMG SRC='../applet/n_0.gif' name='y0_d'>");
  66.   document.write("<IMG SRC='../applet/n_0.gif' name='y1_d'>");
  67.   document.write("<IMG SRC='../applet/n_10.gif'>");
  68.   document.write("<IMG SRC='../applet/n_0.gif' name='m0_d'>");
  69.   document.write("<IMG SRC='../applet/n_0.gif' name='m1_d'>");
  70.   document.write("<IMG SRC='../applet/n_11.gif'>");
  71.   document.write("<IMG SRC='../applet/n_0.gif' name='d0_d'>");
  72.   document.write("<IMG SRC='../applet/n_0.gif' name='d1_d'>");
  73.   document.write("<IMG SRC='../applet/n_12.gif' name='week_d'>");
  74.   document.write("<IMG SRC='../applet/n_0.gif' name='h0_d'>");
  75.   document.write("<IMG SRC='../applet/n_0.gif' name='h1_d'>");
  76.   document.write("<IMG SRC='../applet/n_13.gif'>");
  77.   document.write("<IMG SRC='../applet/n_0.gif' name='n0_d'>");
  78.   document.write("<IMG SRC='../applet/n_0.gif' name='n1_d'>");
  79.   document.write("<IMG SRC='../applet/n_14.gif'>");
  80.   document.write("<IMG SRC='../applet/n_0.gif' name='s0_d'>");
  81.   document.write("<IMG SRC='../applet/n_0.gif' name='s1_d'>");
  82.   document.write("<IMG SRC='../applet/n_15.gif'>");
  83. //-->
  84. </SCRIPT>
  85. </BODY>
  86. </HTML>



プログラムの説明です。< >で囲まれた部分は、行番号を
表しています。また、クリックすればその行へジャンプします。

<10-20>
画像ファイルを先読みします。
画像の場所は適当に変えてください。
<24-29>
時間等を取得します。
<25>
getMonth()は、0〜11で結果を返してくるので
"1"を足す必要があります。
<30-47>
ここから下で取得した2桁の数字を桁ごとにばらします。
<48-59>
文字の画像は初めに表示したら書き換えないので、
数字のみを常に書き換え続けるようにします。
画像の場所、名前は適当に変えてください。
(この色で書かれた部分です。)
今回バグ取りによって修正され青で書かれたところと、
70-87行目まででname='....'の部分とそれぞれ
同じ名前を書いてください。
<66>
onLoad="setTimeout('clock()',1000)" を忘れないよう気をつけてください。
<68-89t>
この範囲のものを時計を表示させたいところに記述してください。
このソースでは純粋にJavaScriptのみを表示するようにしてありますが、
動作見本はテーブルを使うようにしてあります。

あらかじめすべて "0" の時計を表示させます。
画像のファイル名及びパスは適当に変えてください。

バグ取りをした結果画像表示をする際に
JavaScriptでdocument.write("<IMG SRC='....' name='....'>");
のようにしないと画像がうまく更新されないようになりました。
普通に<IMG SRC="....">とすることは出来ません。



back