私は Framer を初めて使用し、Javascript の実用的な知識しかありません。
Framer Audio Playerモジュールを使用して Framer プロトタイプを作成しようとしています。私が思いついた基本的な状況では問題なく動作しますが、もう少し複雑なことをしようとしているので、行き詰まっています。
私がやろうとしていること: ホバー時に 1 つのオーディオ クリップを再生したいと思います。ユーザーがオーディオ クリップの再生中にホバリングし続けると、最初のクリップが終了するとすぐに、別の「成功した」クリップが 1 回再生されます。
以下のコードでは、最初のクリップは正常に再生されますが、2 番目のクリップは何度も繰り返されます。.once()
を入力して、試行錯誤スタイルで使用しようとしましたが、さまざまな形式の'audio.player.once "ended", ->'
と'audio.player.play().once'
が機能しません。.once
Framerのドキュメントにも見つかりませんでした。
これが私の 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
ここにはおそらく簡単な答えがあるように感じますが、私の限られた理解が私をつまずかせています。誰か考えがありますか?ありがとう!