-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhammerFramer.coffee
66 lines (51 loc) · 1.54 KB
/
hammerFramer.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Add the following line to your project in Framer Studio.
# myModule = require "myModule"
# Reference the contents by name, like myModule.myFunction() or myModule.myVar
TouchEmulator = require "hammer-touchemulator"
TouchEmulator()
Hammer = require "hammerjs"
exports.init = ->
HammerEvents =
Pan: "pan"
PanStart: "panstart"
PanMove: "panmove"
PanEnd: "panend"
PanCancel: "pancancel"
PanLeft: "panleft"
PanRight: "panright"
PanUp: "panup"
PanDown: "pandown"
Pinch: "pinch"
PinchStart: "pinchstart"
PinchMove: "pinchmove"
PinchEnd: "pinchend"
PinchCancel: "pinchcancel"
PinchIn: "pinchin"
PinchOut: "pinchout"
Press: "press"
PressUp: "pressup"
Rotate: "rotate"
RotateStart: "rotatestart"
RotateMove: "rotatemove"
RotateEnd: "rotateend"
RotateCanel: "rotatecancel"
Swipe: "swipe"
SwipeUp: "swipeup"
SwipeDown: "swipedown"
SwipeLeft: "swipeleft"
SwipeRight: "swiperight"
Tap: "tap"
# Add the Hammer events to the base Framer events
window.Events = _.extend Events, HammerEvents
# Patch the on method on layers to listen to Hammer events
class HammerLayer extends Framer.Layer
on: (eventName, f) ->
if eventName in _.values(HammerEvents)
@ignoreEvents = false
hammer = new Hammer(@_element)
hammer.get(eventName)?.set({ enable: true });
hammer.on eventName, f
else
super eventName, f
# Replace the default Layer with the HammerLayer
window.Layer = HammerLayer