Step.10 - メッセージを1文字ずつ表示して最後に点滅させる
|
メッセージを左から1文字ずつ表示していきます。その後、5回点滅させます。 |
Step テーマ ● ++インクリメント演算子 ● +=代入演算子 |
実行例 |
リスト<script type="text/javascript"><!-- myMsg = "いらっしゃいませ こんにちは!"; myCnt = 0; myDspFlg = 0; function myFunc(){ if ( myDspFlg == 0 ){ document.myForm.myFormMes.value = myMsg.substring(0,myCnt); if ( myCnt == myMsg.length ){ myCnt = 0; myDspFlg = 1; }else{ myCnt += 1; } }else if ( myDspFlg == 1 ){ document.myForm.myFormMes.value = ""; myDspFlg = 2; }else{ document.myForm.myFormMes.value = myMsg; myCnt ++; if ( myCnt == 5 ){ myDspFlg = 0; myCnt = 0; }else{ myDspFlg = 1; } } } // --></SCRIPT> <form name="myForm"> <input type="text" size="30" name="myFormMes"> </form> <script type="text/javascript"><!-- setInterval("myFunc()",200); // --></SCRIPT> |
サンプルだけの HTMLは こちらへ |
説明わっ! リストが長くなりましたね! はい。Step.8 と Step.9 をセットにしましたから。(^^; この 2つの Step を制覇した人は、コーヒーブレイクの Step です。 おさらい程度にリストの流れを説明します。 今回は、タイプ表示と点滅表示を交互に処理するので、どっちの処理をするか(しているか)を判断させるために myDspFlg という変数を追加しました。 myDspFlg が 0 の時は、タイプ表示の処理をする myDspFlg が 1 の時は、点滅の消去処理をする myDspFlg が 2 の時は、点滅の表示処理をする としました。 myCnt は、タイプ表示の処理の時は、現在の表示文字位置をカウントさせ、点滅処理の時は、今、何回点滅したかをカウントさせます。一人二役です。 ●タイプ表示の部分 if ( myDspFlg == 0 ){ document.myForm.myFormMes.value=myMsg.substring(0,myCnt); if ( myCnt == myMsg.length ){ myCnt = 0; myDspFlg = 1; }else{ myCnt += 1; } } myDspFlg が タイプ表示(0) の時、表示する文字を抜き出して表示します。 次に最後まで表示したのであれば、次の点滅処理のために myCnt を 0 にします。 そして、myDspFlg を点滅消去処理(1) に変更します。 最後まで表示していなければ、 myCnt を次の文字位置へ移動させます。 ●点滅(消去)の部分 else if ( myDspFlg == 1 ){ document.myForm.myFormMes.value = ""; myDspFlg = 2; } myDspFlg が点滅消去処理(1)の時、フォームをクリアして、myDspFlg を点滅表示処理(2)へ変更します。 ●点滅(表示)の部分 else{ document.myForm.myFormMes.value = myMsg; myCnt ++; if ( myCnt == 5 ){ myDspFlg = 0; myCnt = 0; }else{ myDspFlg = 1; } } myDspFlg が点滅表示処理(2)の時、フォームにメッセージを表示します。 表示カウンタ(myCnt)をカウントさせ、5回表示(点滅)したのであれば、再びタイプ表示処理へ戻すために myDspFlg を 0 に戻し、myCnt に 0 をセットしてあげます。 5回点滅表示していなければ、myDspFlg を点滅消去(1)に変更します。 リストが長いわりには、たいしたことないですね。(^^; 今回リストを見ていて、おや? と思ったところが 2箇所ありませんでしたか? myCnt += myApp; と、myCnt ++; です。 myCnt += myApp; は、myCnt = myCnt + myApp; の省略形です。 myCnt ++; は、myCnt = myCnt + 1; の省略形です。 ただでさえ覚えることだらけなのに、余計なことまで説明するな! と思うでしょうが、そのうち、右側の式を打ち込むのはとてもめんどくさく感じてくるはずです。 プログラミングにおいて上の2つの式は、とにかく何度も使うのです。 += があるのですから、-= , *= , /= もあります。( a -= 2 は、a = a - 2 と同じこと) ++ があれば、-- もあります。( a=a-1 , a-=1 , a-- は皆同じ ) ちなみに ++ は、インクリメント演算子といって・・・これが余計なんですネ (^^; |
演算子一覧
|