1

数週間前に、Hammer.js イベントを Framer.js に統合する Koen Bok のこの小さな宝石を見つけました。ただし、これは以前のバージョンの Hammer 用に作成されており、その後書き直されています。理論的には、HammerEvents を適応させることで、非常に簡単に新しいバージョンに移植できます。パンとスワイプのイベントでは、すべてが正常に機能しているようです。しかし、何らかの理由で、最新のハンマー スクリプト (2.0.4) で動作するようにイベントをピンチまたは回転させることができません。

これは、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

誰が何が悪いのか考えていますか?本当にありがとう!

4

1 に答える 1

0

スニペットを試してみました。うまく機能しているようです。私はこのコードでそれを試しました:

doubleTap = new HammerLayer

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

Framer プロトタイプに Hammer.js JavaScript ライブラリを必ず含めましたか?

  1. http://hammerjs.github.io/dist/hammer.min.jsを Framer プロジェクトに保存します。というサブフォルダに入れましたjs
  2. index.htmlFramer フォルダー内を開き、他のすべてのインクルージョンの後に行を追加し<script src="js/hammer.min.js"></script>ます<script>
  3. Hammer イベントが Framer でトリガーされるはずです。
于 2017-09-25T18:57:32.367 に答える