С помощью Frame Studio я пытаюсь воспроизвести функцию «выбрать текст» приложения iOS Messages, как показано ниже:
В частности, я хочу, чтобы увеличенное всплывающее окно появлялось в любом месте, когда я нажимаю и удерживаю его.
С помощью Frame Studio я пытаюсь воспроизвести функцию «выбрать текст» приложения iOS Messages, как показано ниже:
В частности, я хочу, чтобы увеличенное всплывающее окно появлялось в любом месте, когда я нажимаю и удерживаю его.
Вот пример, опубликованный Крисом Агой в группе Framer.js в Facebook: http://share.framerjs.com/78aqs01eogh9/
Итак, что вы хотите сделать, сначала проверьте длинное нажатие:
screen.on Events.TouchStart, (event) ->
isHeld = true
Utils.delay .25, () ->
if isHeld then triggerLongHold(event)
Чтобы нормализовать координаты событий мыши и касания, мы используем Указательный модуль. Поэтому вам нужно будет включить модуль в свой проект. После этого переместите слой с увеличительным стеклом туда, где происходит долгое нажатие:
triggerLongHold = (event) ->
mask.opacity = 1
shadow.opacity = 1
pointerValues = Pointer.screen(event, screen)
mask.x = pointerValues.x - mask.width / 2
mask.y = pointerValues.y - mask.height
bgMagnified.x = -2 * pointerValues.x + 140
bgMagnified.y = -2 * pointerValues.y + 120
и обновить его позицию, если пользователь перемещает палец/мышь:
screen.on Events.TouchMove, (event) ->
if isHeld
pointerValues = Pointer.screen(event, screen)
mask.x = pointerValues.x - mask.width / 2
mask.y = pointerValues.y - mask.height
bgMagnified.x = -2 * pointerValues.x + 140
bgMagnified.y = -2 * pointerValues.y + 120
Надеюсь, это поможет вам начать!