2012-07-03 5 views
0

Я разработал веб-приложение, в котором встроен код обработки касания. При касании вниз он сохраняет ссылку на измененные татуировки в событии. При прикосновении он выполняет итерацию через changedTouches и пытается сопоставить их с сохраненным сенсорным объектом из события touchDown, сигнализируя о конце касания. Кажется, что объекты касания не совпадают между двумя событиями, то есть я не могу сопоставить штрихи. Приложение отлично работает в iOS, а в Safari и Chrome - на рабочем столе с некоторыми симуляторами сенсорных событий. Просто кажется, что проблема в Chrome на Android.Объекты с сенсорным экраном Android не сохраняются между событиями

Вот пример: jsFiddle

ответ

3

Порядок прикосновений в TouchLists не гарантировано остаются неизменными. Вместо этого вы должны полагаться на touch.identifier. См. touch events specification.

4

В Chrome для Android существует ошибка, при которой касания и измененный массив Touches не сохраняют свой собственный уникальный идентификатор правильно, если вы не примените event.preventDefault() на событие touchmove или touchstart.

Эта ошибка влияет на Chrome для Android в сэндвиче с мороженым и желе, и она остается неразрешенной более года. Итак, первый плакат правильный, вы должны положиться на touches[i].identifier или changedTouches[i].identifier, имея в виду, что вы должны позвонить event.preventDefault() на touchmove или touchstart, чтобы эти идентификаторы сохранялись правильно.

http://code.google.com/p/android/issues/detail?id=19827

Смежные вопросы