Events 在Framer Studio工作一次?

Events 在Framer Studio工作一次?,events,audio,coffeescript,framerjs,Events,Audio,Coffeescript,Framerjs,我是Framer的新手,对Javascript只有一点实用知识 我正在尝试使用该模块创建一个框架原型。对于我提出的基本情况,它工作得很好,但是现在我正试图做一些稍微复杂一点的事情,我被卡住了 我想做什么: 我想在hover上播放一个音频剪辑。如果用户在音频剪辑期间保持悬停,则第一个剪辑结束后,另一个“成功”剪辑应播放一次 在下面的代码中,第一个剪辑播放得很好,但第二个剪辑不断重复。我尝试使用.once(),方法是输入各种形式的'audio.player.once“end”、->'和'audio.

我是Framer的新手,对Javascript只有一点实用知识

我正在尝试使用该模块创建一个框架原型。对于我提出的基本情况,它工作得很好,但是现在我正试图做一些稍微复杂一点的事情,我被卡住了

我想做什么: 我想在hover上播放一个音频剪辑。如果用户在音频剪辑期间保持悬停,则第一个剪辑结束后,另一个“成功”剪辑应播放一次

在下面的代码中,第一个剪辑播放得很好,但第二个剪辑不断重复。我尝试使用
.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

我觉得这里可能有一个直截了当的答案,但我有限的理解让我绊倒了。有人有什么想法吗?谢谢

嗯,我觉得这是作弊,但我为成功声音创建了一个新的音频对象,瞧,我得到了我想要的行为。唉

但是如果有人能帮助我理解为什么上面的代码不起作用,我将不胜感激