A revolving earth (earthani.gif--64x64) Beaverland Net
Net Art
 
English Version (englishv.gif--140x51)

Beaverland Net Art logo (netart2.gif--140x365)

 

Beaverland Net English slangs not found in a dictionary logo (slangs.gif--140x260)

 

Beaverland HTML Made Easy! logo (html01.gif--140x160)

 

JavaScript Made Easy! logo (javascrt.gif--140x360)

 

Revised brand-new Japanese ancient history logo (jhist02.gif--140x300)

 

 

How to use the North-American Computer system in Japanese (jpnword.jpg--140x360)

 

Beaverland Japonica banner (japonic3.gif--140x360)

 

Study in Canada Home Page logo (homepg.gif--160x160)


onstore.gif (140x93)

beavbook.gif (120x160)

beavcomp.gif (120x160)

beavmovi.gif (120x160)

beavgift.gif (120x160)

beavtrav.gif (120x160)

music.gif (50x50) Beaverland Music
 
どのようにしたら、
ウェブページ閲覧者が
スピードを設定できるか?
October 9, 2003

     

   

A cute pinup girl (spacer.gif--1x1)

 

 

ジャバスクリプト・コードは次のようになります。

<script language="javascript">
<!---- to hide

var delayTime=3000

function goWink() {
  document.head.src="../images/pinup35b.gif"
  myTimerID=setTimeout("restore()",delayTime)
  }

function restore() {
  document.head.src="../images/spacer.gif"
  myTimerID=setTimeout("goWink()",delayTime)
  }

//----->
</script>

<form name="thisForm">

<input type="button" value=" START "
  onClick="goWink()">

<input type="button" value=" STOP "
  onClick="clearTimeout(myTimerID);
          document.head.src='../images/spacer.gif'">
<p>

<input type="text" size="5"
        name="delayNumber" value="3000">

<input type=button value="Faster "
  onClick="if (delayTime > 10) {delayTime -= 10;
    document.thisForm.delayNumber.value = delayTime}"
  onDblClick="if (delayTime > 100) {delayTime -= 100;
    document.thisForm.delayNumber.value = delayTime}">

<input type=button value="Slower "
  onClick="delayTime += 10;
    document.thisForm.delayNumber.value = delayTime"
  onDblClick="delayTime += 100;
    document.thisForm.delayNumber.value = delayTime">

</form>

このページは次に示すページの続きです。もし直接、このページへジャンプした場合には、次のリンクをクリックすると、前のページを見ることができます。

スタート・ストップ メカニズム』 新しいウィンドーが開きます。このページへ戻るには、そのウィンドーを閉じてください。

大きく違う点は、このページでは、さらに2つのボタンが追加され合計4つのボタンが付いていることです。 また、ウィンクとウィンクの間隔をミリセカンドで表示しています。

それぞれのボタン( あるいは  )をクリックすることにより、この数字(初期設定3000)を減らしたり(スピードアップ)、または増やしたり(スピードダウン)することができます。

クリックすると10ずつ変化します。ダブル・クリックすると100ずつ変化します。

上記のことを実行するために、ジャバスクリプトを使って書いた部分が上のコーディング・シートの白いバックグラウンド・カラーで示した部分です。

それ以外のコードは、前のページで使っていたものを、そのまま引き継いで使っています。

このページでは、ウィンクとウィンクの間隔を変える必要があるので、delayTime という変数を使っています。 前のページでは直接、3000(ミリセカンド、つまり3秒)という定数を書き込んでいましたが、このページでは、その代わりに上の変数を書き込んであります。  

 

最初の INPUT タグ

<input type="text" size="5"
        name="delayNumber" value="3000">

これはスピード・メーターの部分です。つまり、ウィンクとウィンクの間隔が、ミリセカンドで表示されます。 この表示だけに使われる“窓”にdelayNumberという名前を与えています。

delayTimeは、間隔を表す変数です。この2つは非常に良く似ていますが、全く性質の異なるものですので、 混同しないように注意してください。

初期値を表示するために、valueアトリビュートを使って 3000 をその初期値として与えています。

sizeアトリビュートを使って5桁の数字であることを指定しています。

 

2番目の INPUT タグ

<input type=button value="Faster "
  onClick="if (delayTime > 10) {delayTime -= 10;
    document.thisForm.delayNumber.value = delayTime}"
  onDblClick="if (delayTime > 100) {delayTime -= 100;
    document.thisForm.delayNumber.value = delayTime}">

この INPUT タグで上のボタンの機能を設定しています。 onClick はイベント・ハンドラーと呼ばれるものです。

onClick="クリックすると実行するステートメントをここに書く"

この場合、クリックすると次の IF ステートメントを実行します。

if (delayTime > 10) {delayTime -= 10;
    document.thisForm.delayNumber.value = delayTime}

delayTimeが10ミリセカンドより大きい場合には次の2つのステートメントを実行します。もし、同じか小さい場合は、何もしません。

delayTime -= 10

上のステートメントは下に示すステートメントと同じことを実行します。

delayTime = delayTime - 10

つまり、delayTime から10を引いた数値を delayTime に保存し直します。

delayTime は上のコーディング・シートの中で、次に示すようなやり方で、3000という初期値が与えられています。

var delayTime=3000

var はvariable の略で、「変数」という意味です。

document.thisForm.delayNumber.value = delayTime

上の 複合IFステートメントの2番目のステートメントは、簡単に言えば、delayTimeで表される数値をテキストに変換して、 最初の INPUT タグで設定された“窓”に表示しなさいという命令です。

ジャバスクリプトでは、“窓”に表示されるストリング・バリュー(value)を、このように厳密に指定しているわけです。 左側の4つの単語は、専門用語では、「オブジェクト」と呼ばれるものです。オブジェクト・プログラミングというような時に使われるオブジェクトが、この「オブジェクト」のことです。 つまり、documentというのは、ドキュメント・オブジェクトで、この場合には、このページを意味しています。

thisFormと言うのはフォーム・オブジェクトのことです。つまり、FORMタグで設定した、上のコーディング・シートで言うと、 薄い緑色で囲まれた部分です。この部分(オブジェクト)を次のように nameアトリビュートを使って thisForm と名づけています。

<form name="thisForm">

delayNumberは「テキスト窓」オブジェクトに与えられた名前です。

valueは、この「テキスト窓」オブジェクトに付随するテキスト・ストリングを保存する場所(メモリー)を意味します。

ドットは所有関係、もしくは所属関係を表しています。ドットの左側が所有しているもの、 右側が所有されるもの、あるいは左側のオブジェクトに所属しているものと言う意味です。

「テキスト窓」オブジェクトを使う場合、注意しなければならいのは、フォーム・オブジェクトと一緒に使わなければなりません。 そうでないとエラーになって、全く動きません。つまり、次のような使い方は出来ません。

document.delayNumber.value = delayTime

 

onDblClick イベント・ハンドラー

ボタンをダブルクリックすると10ではなく100だけ減算されます。これだけが違うことで、それ以外のことは、クリックする場合と全く変わりません。

 

3番目の INPUT タグ

<input type=button value="Slower "
  onClick="delayTime += 10;
    document.thisForm.delayNumber.value = delayTime"
  onDblClick="delayTime += 100;
    document.thisForm.delayNumber.value = delayTime">

2番目の INPUT タグとほぼ同様です。この場合には、引き算でなく足し算になっているのが違っているだけです。 引き算の場合と違って、マイナスになることがないので IFステートメントは使われていません。従って、上限を設けていません。 上限を設ける場合にはIFステートメントを付け足す必要があります。

 

関連リンク





Rate article:
Excellent Good Neutral Poor Worst

Your Name:
Your Email Address:
Comments:


  Comments
 
メッセージ・ウィンドーはどのように出すのですか?
    - ウィンドー・クリーナー

コードは次のようになります。

<input type="button" value="メッセージウィンドーを出す。"
   onClick="alert('これがメッセージ・ウィンドーです。')">

もっと詳しいことは次のリンクをクリックして読んでください。

Javascript Special Characters and Alert() Method
    - Akira

 
 
筆者紹介
Akira Kato (kato.jpg--180x135)
  • 日本とカナダの大学で教育を受ける。
  • 横浜にある大手の電器メーカーでコンピューターのソフトウエアの開発に従事する。
  • カナダのノースウエスト隼州政府・財務省に勤務する。
  • バンクーバーのランガラ・カレッジおよびサレーのクワンテレン・カレッジで講師を勤める。
  • ヨーロッパ、東南アジア、中国、北米を幅広く旅行する。
  • 現在、経営コンサルタント、フリーランス・ライターとして活躍している。

Beaverland ジャポニカ
Re-Discover JAPAN
inserted by FC2 system