私はマウスイベントの位置を返す関数を持っています。奇妙なマウスイベントの位置問題
// returns the xy point where the mouse event was occured.
function getXY(ev){
var xypoint = new Point();
if (ev.layerX || ev.layerY) { // Firefox
xypoint.x = ev.layerX;
xypoint.y = ev.layerY;
} else if (ev.offsetX || ev.offsetX == 0) { // Opera
xypoint.x = ev.offsetX;
xypoint.y = ev.offsetY;
}
return xypoint;
}
html5キャンバスで図面を実行するためにマウスイベントをキャプチャしています。時々私はxpointの値を取得しています。私がfirebugを使ってアプリケーションをデバッグすると、私は本当に奇妙な動作をしています。例えば、私がブレークポイントを条件(xypoint.x < 0 || xypoint.y <)でこの関数の4行目に置くと、ブレークポイントで停止し、そのlayer.xを見ることができます。layer.y肯定的で正しかった。しかし、xypoint.xまたはxypoint.yは負です。 firbugコンソールを使用して値を再割り当てすると、xypointで正しい値が得られます。誰もが何が起こっているか私を説明することはできますか?
通常の速度でマウスを動かすと、上記はうまくいきます。私が非常に速い速度でマウスを動かしているなら、私はこの動作を得ています。マウスの位置を取り扱い
おかげ
返信いただきありがとうございますが、私の問題は解決しませんでした。私のXY位置を取得する機能が私に正しい結果を与えている、問題はイベントから変数への代入が行われないことがあるということです。 –
ああ、私は理解しています。両方のブラウザで割り当てを失っていますか? – stslavik