Позиционировать оба касания сафари из события жеста?

Я хочу получить положение (относительное или иное) двух пальцев/прикосновений внутри жест (gesturestart, gesturechange, gestureend) в мобильном Safari (iOS: iPad/iPhone). Я знаю, что события gesture* на самом деле не предоставляют это в аргументах события, но я подумал, что может быть «уловка» для получения этой информации. Было бы здорово получить координаты пальцев при отслеживании жеста (например, масштабирование и перемещение объекта одним и тем же жестом).

Можно ли это сделать?


person Matt Kocaj    schedule 29.09.2010    source источник


Ответы (2)


Оказывается, эта информация недоступна напрямую через события «жест». События touch являются ключевыми, и я смог получить коллекцию касаний и использовать первые два касания для получения дельты/средней точки двух наборов координат. Кажется, это работает.

person Matt Kocaj    schedule 01.12.2010
comment
Но когда запускается жестEvent, как вы можете перехватить предыдущий триггер tochEvent? - person powtac; 25.05.2011
comment
Вы должны собрать их всех и установить флаги. - person Matt Kocaj; 26.05.2011
comment
Спасибо! Тем временем я нашел порядок происходящих событий на developer.apple.com/library/safari/#documentation/ - person powtac; 26.05.2011

В возвращаемом объекте события для события касания есть три массива:

  1. касается
  2. targetTouches
  3. измененоTouches

Я не могу вспомнить, где я изначально нашел эту информацию, но быстрый поиск в Google выдает http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/

Понятно! https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html Внизу, в разделе «Обработка мультитач-событий»

person Adam Heath    schedule 04.10.2010
comment
Спасибо за ответ. Да, я был на этих ссылках, эй. Мне действительно нужно получить элементы сенсорного массива из события жеста. Теперь я знаю, что событие жеста не предоставляет их напрямую, но я подумал, что, возможно, есть косвенный способ сделать это? - person Matt Kocaj; 05.10.2010
comment
Я так не думаю. События guesture являются событиями более высокого уровня и не содержат этих данных. Если вам нужны данные такого типа, вам следует использовать события касания и свойства массивов, упомянутые выше. Свойства гостевых событий: tuvix.apple.com/library/safari/#documentation/UserExperience/ - person Adam Heath; 07.10.2010
comment
это не правильно! Событие жеста не возвращает касание, targetTouch, chagnedTouches! - person powtac; 25.05.2011