2015-02-08 29 views
1

我发现这个Koen Bok的小宝石,它在几周前将Hammer.js事件整合到Framer.js中。然而,它是为旧版本的锤子而设计的,后来被重写。从理论上讲,我可以很容易地通过调整HammerEvents将其移植到新版本,并且对于平移和滑动事件似乎一切正常。但是由于某种原因,我不能使用最近的锤子脚本(2.0.4)来捏住或旋转事件。Framer.js Hammer.js集成

这是原来的代码段,用于Hammer.js 1.1.3:

HammerEvents = 

    Tap: 'tap' 
    DoubleTap: 'doubletap' 
    Hold: 'hold' 
    Touch: 'touch' 
    Release: 'release' 
    Gesture: 'gesture' 

    Swipe: 'swipe' 
    SwipeUp: 'swipeup' 
    SwipeDown: 'swipedown' 
    SwipeLeft: 'swipeleft' 
    SwipeRight: 'swiperight' 

    Transform: 'transform' 
    TransformStart: 'transformstart' 
    TransformEnd: 'transformend' 

    Rotate: 'rotate' 

    Pinch: 'pinch' 
    PinchIn: 'pinchin' 
    PinchOut: 'pinchout' 

window.Events = _.extend Events, HammerEvents 

class HammerLayer extends Framer.Layer 

    on: (eventName, f) -> 

     if eventName in _.values(HammerEvents) 
      @ignoreEvents = false 
      hammer = Hammer(@_element).on eventName, f 

     else 
      super eventName, f 

window.Layer = HammerLayer 

没有任何人有一个想法有什么不对? 非常感谢!

回答

0

刚试过片段。它似乎工作得很好。 我这个代码试了一下:

doubleTap = new HammerLayer 

doubleTap.on HammerEvents.DoubleTap, -> 
    print "You just doubletapped me." 

你一定要包括Hammer.js JavaScript库到您的成帧器原型?

  1. http://hammerjs.github.io/dist/hammer.min.js保存到您的Framer项目中。我把它放在一个名为js的子文件夹中。
  2. 打开index.html里面的Framer文件夹,并添加行<script src="js/hammer.min.js"></script>毕竟其他<script>夹杂物。
  3. 您的锤子事件现在应该在Framer中触发。