ストローク幅が2のドラッグ可能な線があり、ユーザーがクリックして周囲の領域の近くをドラッグしても、線をドラッグできるようにしたいと考えています。私の理解によると、それを行う方法は、ラインのカスタムdrawHitFuncを定義することです。http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-custom-hit-function-tutorial/のチュートリアルのコードを適応させて、行のカスタムdrawHitFuncを定義しました。
私のカスタムドローヒット機能はシンプルです。同じ線ですが、はるかに太い(25ピクセル幅)。ただし、これは機能していないようです。ドラッグは、マウスポインタをライン上に注意深く置いてからドラッグした場合にのみ機能します。以下に定義されているdrawHitFuncに基づいて、線の近くをクリックしてドラッグしても機能するはずです。私は何が間違っているのですか?
drawHitFuncスニペットは次のとおりです。
function(canvas) { var context = canvas.getContext(); context.beginPath(); context.lineWidth = 25; context.moveTo(this.getPoints()[0].x, this.getPoints()[0].y); context.lineTo(this.getPoints()[1].x, this.getPoints()[1].y); context.closePath(); canvas.fillStroke(this); }
完全に失敗した例は次のとおりです:http://jsfiddle.net/BwF6K/
私が逃したことを指摘する助けはありがたいです。
ありがとう。