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>
以下にいくつかのシナリオを示します。
- 画面をタップする、指を動かさない、指を離さない
- テキスト ボックスが更新されるまで、約 0.5 秒待つ必要があります。
- 画面をタップする、指を動かす、指を離さない
- 指を動かした瞬間に画面が更新されます
- 画面をタップして離す
- 指を離した瞬間に画面が更新されます
いずれの場合も、 touchstart イベントはすぐに発生します。画面の更新が遅れるだけです。クリックイベントをトリガーする 300ms の遅延が関係しているようですが、問題は異なり、遅延するのは画面の更新です。event.preventDefault
私は、キャプチャをtrueまたはfalseに設定する、またはfalseを返すなど、すべての明白なことを試したと思います。私も検索しましたが、報告された同様の問題は見つかりませんでした。
また、iPad と Android 2.3 を実行している Nexus One フォンで正常に動作しており、タッチスタートの直後に画面が更新されます。
何か案は?