0

私は Framer を初めて使用し、Javascript の実用的な知識しかありません。

Framer Audio Playerモジュールを使用して Framer プロトタイプを作成しようとしています。私が思いついた基本的な状況では問題なく動作しますが、もう少し複雑なことをしようとしているので、行き詰まっています。

私がやろうとしていること: ホバー時に 1 つのオーディオ クリップを再生したいと思います。ユーザーがオーディオ クリップの再生中にホバリングし続けると、最初のクリップが終了するとすぐに、別の「成功した」クリップが 1 回再生されます。

以下のコードでは、最初のクリップは正常に再生されますが、2 番目のクリップは何度も繰り返されます。.once()を入力して、試行錯誤スタイルで使用しようとしましたが、さまざまな形式の'audio.player.once "ended", ->''audio.player.play().once'が機能しません。.onceFramerのドキュメントにも見つかりませんでした。

これが私の Framer/CoffeeScript コード スニペットです。

mouseOver = (bool) ->
if bool
    goal.animate
        properties:
            opacity: .5
            backgroundColor: "transparent"
            borderColor: "8AFFC1"
            borderWidth: 3
    sensor.animate
        backgroundColor: "green"
        options: 
            time: 0.25
    audio.player.play() # play first clip
    audio.player.loop = false
    audio.player.on "ended", -> # when first clip has ended...
        print "done"
        audio.player.src = "success.wav"
        audio.player.play() # I only want this to play once!
else 
    goal.animate
        properties:
            opacity: 1
            backgroundColor: "transparent"
            borderWidth: 3
            borderColor: "white"
    sensor.animate
        backgroundColor: "red"
        options:
            time: 0.25
    audio.player.pause()
reset = !bool

ここにはおそらく簡単な答えがあるように感じますが、私の限られた理解が私をつまずかせています。誰か考えがありますか?ありがとう!

4

1 に答える 1