我是Framer的新手,并且只有Java的工作知识。
我正在尝试使用Framer Audio Player模块创建Framer原型(prototype)。对于我想出的基本情况,它可以很好地工作,但是现在我试图做一些稍微复杂的事情,所以我陷入了困境。
我正在尝试做的事情:
我想在悬停时播放一个音频剪辑。如果用户在音频剪辑的持续时间内保持悬停,则在第一个剪辑结束时,另一个“成功”剪辑应播放一次。
在下面的代码中,第一个剪辑播放正常,但是第二个剪辑不断重复播放。我尝试通过输入-试验和错误样式-各种形式的.once()
和'audio.player.once "ended", ->'
来使用'audio.player.play().once'
,但是这种方法不起作用。我也无法在Framer文档中找到.once
。
这是我的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
我觉得这里可能有一个简单的答案,但是我有限的理解使我感到困惑。有人有想法吗?谢谢!
最佳答案
好吧,所以,我觉得这很欺骗,但是我为成功声音创建了一个新的音频对象,瞧,我得到了想要的行为。叹。
但是,如果有人能够帮助我理解上面的代码为什么不起作用,我将不胜感激。 :)