2

touchstart でキャンバスを更新する HTML5 ゲームを書いています。Android 4.1.1 を実行している Galaxy Note 10.1 では、touchstart イベントの後に画面が更新されるまでに少し時間がかかります。調査した結果、タッチスタート後に画面 (画面の変更のみ) が更新されるまでに時間がかかると結論付けました。ここにデモンストレーションがあります:

<!DOCTYPE html>
<html>
<head>
<script>

document.addEventListener(
    'touchstart',
    function(event) {
        console.log('touchstart');

        document.getElementById('asdf').value = 'asdf';
    }
);  

</script>
</head>
<body>
<input id="asdf" value="qwer" type="text" />
</body>
</html>

以下にいくつかのシナリオを示します。

  1. 画面をタップする、指を動かさない、指を離さない
    • テキスト ボックスが更新されるまで、約 0.5 秒待つ必要があります。
  2. 画面をタップする、指を動かす、指を離さない
    • 指を動かした瞬間に画面が更新されます
  3. 画面をタップして離す
    • 指を離した瞬間に画面が更新されます

いずれの場合も、 touchstart イベントはすぐに発生します。画面の更新が遅れるだけです。クリックイベントをトリガーする 300ms の遅延が関係しているようですが、問題は異なり、遅延するのは画面の更新です。event.preventDefault私は、キャプチャをtrueまたはfalseに設定する、またはfalseを返すなど、すべての明白なことを試したと思います。私も検索しましたが、報告された同様の問題は見つかりませんでした。

また、iPad と Android 2.3 を実行している Nexus One フォンで正常に動作しており、タッチスタートの直後に画面が更新されます。

何か案は?

4

2 に答える 2