« 選手のプレイルートの作図(1) | トップページ | HTML の <p> は paragraph ではない »

2016年9月10日 (土)

選手のプレイルートの作図(2)

Playdiagram02

LongDriver でプレイルート作成モード時に仮想マウスパッド上でクリックすると左図の矢印で示したような要素が生成されますが、これをゴーストと呼びます。仮想マウスパッド上でマウスボタンを押したままマウスを動かすと、このゴーストが移動します。この動作を3つの関数 startDrag, drag, endDrag とイベント mousedown, mousemove, mouseup で表すと下図のようになります。関数の下の表記はマウスが動いたかどうかのフラグです。

\[ \xymatrix{ \ar[r]^<{mousedown} & *[F:<3pt>]\txt{startDrag\\isStay = true} \ar[rr]^{mousemove} \ar[rrd]_<{mouseup\\=click} & & *[F:<3pt>]\txt{drag\\isStay = false} \ar[d]^{mouseup} \\ & & & *[F:<3pt>]\txt{endDrag\\isStay?\\=>addNode} } \]

mousedown の後、マウスを動かさずに mouseup した時にクリックとみなしゴーストが生成されます。しかし何か誤った操作をしたのか、それまで正常に動作していたのにクリックしてもゴーストが生成されくなりました。そこで JavaScript の動作を追ってみると、実行しないはずの drag が実行されていました。その drag の中で isStay = false が実施され、そのため endDrag 内で addNode が実行されていなかったので、ゴーストが生成されていませんでした。 LongDriver を再読み込みしてもこの不具合は治りません。結局PCを立ち上げなおして元に戻りました。取り敢えずの対処として、 drag 内でマウスの移動量が0かどうかを確認することにしました(そもそも、移動量0なら drag は実行されないはず)。並行してこの不具合の原因解明も進めて行きたいと思います。


function drag(evt){
    ・・・
    if ((deltY != 0)||(deltX != 0)){ // deltY, deltX はマウスの移動量
        playBook.isStay = false;
        ・・・
    }
    ・・・
}

« 選手のプレイルートの作図(1) | トップページ | HTML の <p> は paragraph ではない »

フットボールのプレイ図ソフト」カテゴリの記事

コメント

コメントを書く

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

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/584699/64186051

この記事へのトラックバック一覧です: 選手のプレイルートの作図(2):

« 選手のプレイルートの作図(1) | トップページ | HTML の <p> は paragraph ではない »