« <span class="sl_ft" style="font-weight:normal">LongDriver</span> のデバッグ結果 | トップページ | LASSO に関する幾つかの補足 »

2020年3月28日 (土)

デバッグで新たなバグ作成 (<span class="sl_ft" style="font-weight:normal">FlatTable</span> )

FlatTable(ビリヤードの配置図ソフト)でも LongDriver(フットボールのプレイブック・ソフト)と同様の不具合が見られたので、修正しました。 FlatTable は何故か一見正常に動作しているように見えたのですが、デバッガーで見るとエラーは発生していました。デバッグ内容は基本的には LongDriver と同じく、 touchEvent 処理時に下記コードで仮想マウスパッドを再表示するというものです。

        curPage.exPad.setAttribute("display", "none");
        setTimeout(function(){
            curPage.exPad.setAttribute("display", "inline");
        }, 10);

ところが、このデバッグの所為で新たなバグを生むことにもなりました。 FlatTable は初期配置を指定出来るのですが、そこでバグを作ることになりました。初期配置を処理するコードが配置図を作成するときに使用するコードと兼用になっている箇所が有ります。例えば、球の経路を描画するルーチンなどです。そういう所に上記の再表示コードを入れると、正しく初期配置を表示しなくなったのです。上記コード内の curPage.exPad は仮想マウスパッドですが、初期配置を表示する時点では、この仮想マウスパッドは未だ作成されていないため、 undefined のエラーが発生しました。それで、上記コードを実行する前に curPage.exPad の存在を確認することでエラーを回避しました。もう大丈夫なはずです。

FlatTable は JavaScript も SVG も初めて扱った時のソフトなので、今回コードに目を通してみて「ナンダカナァ」と思うところも有りました。書き直そうかという考えが無くは無いのですが、今さら手間を掛けるのも「ナンダカナァ」といったところです。

« <span class="sl_ft" style="font-weight:normal">LongDriver</span> のデバッグ結果 | トップページ | LASSO に関する幾つかの補足 »

ビリヤードの配置図ソフト」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« <span class="sl_ft" style="font-weight:normal">LongDriver</span> のデバッグ結果 | トップページ | LASSO に関する幾つかの補足 »