« Objectクラスのインスタンスにメソッドを設定する | メイン | インスタンスのメソッドを実行する »

一定時間刻みで繰り返す

アニメーションを行うといった場合には、onEnterFrameイベントハンドラを利用して繰り返しの処理を実行するのが一般的な方法です。しかし、繰り返しの処理は必ずonEnterFrameイベントハンドラから呼び出さなければならないとしたらスクリプトを書くうえで窮屈です。また、onEnterFrameイベントハンドラでは処理のタイミングがムービークリップのフレームレートに左右されてしまうという不都合もあります。
setInterval()関数を使えばonEnterFrameイベントハンドラを使わずに繰り返しの処理を行うことができ、また、時計の秒針移動のように正確なタイミングで動きを制御したい場合やフレームレートとはまったく違うタイミングの繰り返し処理を行うこともできます。
たとえば次のステートメントを実行すると、myObjオブジェクトのmyMethod()メソッドを2秒間隔で呼び出すようになります。intervalIDにはこのインターバルの設定をキャンセルするためのidが入ります。

intervalID = setInterval(myObj, "myMethod", 2000);

myMethod()メソッドの実行の際にパラメータを渡すこともできます。パラメータがv1, v2ならば次のように書きます。

intervalID = setInterval(myObj, "myMethod", 2000, v1, v2);

インターバルをキャンセルするには、clearInterval(intervalID)を実行します。intervalIDは、setInterval()を実行したときに戻ってくる値です。

clearInterval(intervalID);

note:
setInterval()には対象となるオブジェクトを省略する書式もあります。

投稿者 oshige : 2005年2月19日 11:43