私はIE10タッチAPI(Samsung Slateでのテスト)をいじっていましたが、タッチを押したままにすると、タッチリリースアクションが発生することがわかりました。
画面を指で押したままにしたときに発生するイベントのプロセスは次のとおりです。
- 0ms = pointerId = 0 の MSPointerDown
- 1ms = pointerId = 0 の MSPointerMove
- ~1000ms = pointerId = 0 の MSPointerUp
- ~1001ms = pointerId を使用した MSPointerDown = 1 リピート ポイント
- ~1002ms = pointerId = 1 の MSPointerMove
- ~1250ms = pointerId = 1 の MSPointerUp
次に、pointerId をインクリメントしながら REPEAT POINT で繰り返します。
コードは次のとおりです。
// Setup the css on the canvas (allows for detection of MSPointerMove)
$(canvas).css("-ms-touch-action", "none");
// Initialize regular touch actions
canvas.addEventListener('MSPointerDown', TouchStart, false);
canvas.addEventListener('MSPointerMove', TouchMove, false);
canvas.addEventListener('MSPointerUp', TouchEnd, false);
// Initialize the revoking of gestures/other unwanted pieces
canvas.addEventListener("MSPointerCancel", function (e) { e.preventDefault(); }, false);
canvas.addEventListener("MSGestureInit", function (e) { if (e.preventManipulation) e.preventManipulation(); }, false);
canvas.addEventListener("MSHoldVisual", function (e) { e.preventDefault(); }, false);
これは絶対にスレートの問題である可能性がありますが、何も見逃していないことを確認するように依頼するのが賢明だと思いました. これが単なるスレートの問題ではない場合、1 秒ほど後に不要な「MSPointerUp」イベントをトリガーすることなく、ユーザーが指を押したままにできるようにするにはどうすればよいでしょうか。