2008年11月29日土曜日

500ms割込処理

つづいて、500ms割込処理です。
キャラクター画像は、マウスカーソルに向かって動いたり、止まったりします。
その制御を行います。


cc_huu_tools_bp_20081024.interrupt500ms = function() {


interrupt500msプロパティに500msの割込処理を行う関数リテラルを設定します。


  var obj = cc_huu_tools_bp_20081024;


オブジェクト名が長いので、obj変数に入れて使用します。


  if (obj.buttonEnableCnt > 0) {
    obj.buttonEnableCnt--;
    if (obj.buttonEnableCnt == 0) {
      document.getElementById('clickButtonId').disabled = false;
    }
  }


この処理はStartボタンをエネーブルにするタイミングを計るための処理です。
キャラクター画像は、Startボタンクリック時にbodyの子ノードに変更されます。
ページがロード中にbodyの内容を変更すると、IEにおいて、エラーが発生するようです。
そのため、Startボタンがクリック可能になるのは、割込処理が動作し始めたあと、3秒たってからにしています。


  if (!obj.buttonOnOffFlag) {
    return;
  }


Startボタンが押されていない状態では何もしません。


  if (Math.random() < obj.move.probability) {
    obj.command = 'move';
  } else {
    obj.command = 'stop';
  }
};


一定の確率でobj.commandをmoveにしたりstopにしたりします。
50ms割込処理で、この情報を参照し、キャラクター画像を進めたり、止めたりしています。

以上が500ms割込処理です。

0 件のコメント: