2015-02-08 46 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中觸發。