| |||||||||||||||||||
|
ベティーさんが走って行く。
ジャバスクリプト アニメーション by Akira Kato
October 20, 2003
ジャバスクリプト・コードは次のようになります。
<script language="javascript">
<!---- to hide
var myTimerID=null
function stopBetty() {
function startBetty() {
function dearBetty() {
//----->
<form name="thisForm">
<input type=button value="Faster "
<input type=button value="Slower" このページは次に示すページの続きです。もし直接、このページへジャンプした場合には、次のリンクをクリックして読んでください。 このページで目新しいのは、上のコーディング・シートの白地の部分だけです。 ここでは、その部分について説明します。それ以外については、 下のリンクをクリックすれば、詳しいことが分かります。(新しいウィンドーが開きます。このページへ戻るには、そのウィンドーを閉じてください。)
このアニメーションは8枚のフレームから出来ています。 この8枚のフレーム(絵)をmyPicsという配列変数 (array variable) の中にしまって置きます。 そのやり方は、上のコーディング・シートで見るとおりです。配列に入った一つ一つのフレームは「エレメント(element)」と呼ばれます。 分かりやすいように一行に一つづつ書きましたが、つなげて書いてもかまいません。ただし、カンマで区切ることを忘れないように。 一つだけ忘れてならないことは、このエレメントを指定して表示する時、最初のエレメントは0(ゼロ)から始まります。1ではありません。 例えば最初の絵を取り出して表示する時には次のように書きます。
<input type="button" value="最初のエレメントを表示する"
コマを一つづつ進めるには次のようにします。
コードは次のようになります。
<script language="javascript">
<!---- to hide
var
function slideBetty() {
//----->
<form name="myForm"> ボタンをクリックすると、イベント・ハンドラーの onClick が、上のコードの中に書いてあるジャバスクリプト・ファンクションのslideBetty()を起動します。 このファンクションの中で、ひとコマ進める処理を行っています。 先ず、このファンクションの最初のステートメントは、カウンターの数字を一つ進めます。 コードの中で使われているカウンター ( 3番目のステートメントは配列の中に保存されているコマの中から、フレーム番号に対応しているものを引き出して表示します。 最後のステートメントは、フレーム番号をテキストとして表示するために、ストリング・ヴァリューに変換して、それを「テキスト窓」に表示します。 計算に使った数字のままでは表示できないためです。残念ながら、ジャバスクリプトでは、これを自動的にやってくれません。 以上が、このファンクションの実行していることです。 マニュアルから自動に変えるにはどうすればいいの?
function startBetty() { 最後のステートメントを加えることにより、ジャバスクリプトが自動的にコマを進めてくれます。 この setTimeout()というファンクションは、ジャバスクリプトの中にすでに組み込まれている基本ファンクションです。 delayTimeという変数の初期値は300に設定されているので、300ミリセカンド (0.3秒)後に startBetty() というファンクションを実行します。つまり、自分で自分を呼び出して実行するわけです。 要するに、永久に同じファンクションが繰り返し実行されるわけです。 この永久ループを止めるために、myTimerID という変数を上の様に頭のところに付けて、これによって止めるように仕組まれています。 詳しいことは、このページ (スタート・ストップ メカニズム) を読んでください。
配列(array)を使わずに、
関連リンク
| ||||||||||||||||||
|