Events 在Framer Studio工作一次?
我是Framer的新手,对Javascript只有一点实用知识 我正在尝试使用该模块创建一个框架原型。对于我提出的基本情况,它工作得很好,但是现在我正试图做一些稍微复杂一点的事情,我被卡住了 我想做什么: 我想在hover上播放一个音频剪辑。如果用户在音频剪辑期间保持悬停,则第一个剪辑结束后,另一个“成功”剪辑应播放一次 在下面的代码中,第一个剪辑播放得很好,但第二个剪辑不断重复。我尝试使用Events 在Framer Studio工作一次?,events,audio,coffeescript,framerjs,Events,Audio,Coffeescript,Framerjs,我是Framer的新手,对Javascript只有一点实用知识 我正在尝试使用该模块创建一个框架原型。对于我提出的基本情况,它工作得很好,但是现在我正试图做一些稍微复杂一点的事情,我被卡住了 我想做什么: 我想在hover上播放一个音频剪辑。如果用户在音频剪辑期间保持悬停,则第一个剪辑结束后,另一个“成功”剪辑应播放一次 在下面的代码中,第一个剪辑播放得很好,但第二个剪辑不断重复。我尝试使用.once(),方法是输入各种形式的'audio.player.once“end”、->'和'audio.
.once()
,方法是输入各种形式的'audio.player.once“end”、->'
和'audio.player.play().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
我觉得这里可能有一个直截了当的答案,但我有限的理解让我绊倒了。有人有什么想法吗?谢谢 嗯,我觉得这是作弊,但我为成功声音创建了一个新的音频对象,瞧,我得到了我想要的行为。唉
但是如果有人能帮助我理解为什么上面的代码不起作用,我将不胜感激