1

不幸的是,我下面的代码导致声音以电影的帧速率重复。我只需要一个简单的“在特定帧播放声音”功能,但无法弄清楚这一点。谢谢你的帮助。

addEventListener(Event.ENTER_FRAME,soundFunction);
function soundFunction(event:Event)
{
if (naturepage.ocean_btns.currentFrame == 2)
{
    ocean_channel.stop();
    ocean_channel = ocean1.play(0,int.MAX_VALUE);
    mySO.data.ocean = "2";
    mySO.flush();
}

}
4

1 回答 1

1

这似乎是对的。您确定naturepage.ocean_btns影片剪辑没有在第二帧停止或一遍又一遍地循环播放很少的帧吗?

另一种选择是使用标志来查看您是否已经播放过声音:

var alreadyPlayedSound:Boolean = false;
addEventListener(Event.ENTER_FRAME,soundFunction);
function soundFunction(event:Event)
{
    if (naturepage.ocean_btns.currentFrame == 2 && !alreadyPlayedSound)
    {
        alreadyPlayedSound = true;

        ocean_channel.stop();
        ocean_channel = ocean1.play(0,int.MAX_VALUE);
        mySO.data.ocean = "2";
        mySO.flush();
    }
}

或者在播放声音后删除事件侦听器:

addEventListener(Event.ENTER_FRAME,soundFunction);
function soundFunction(event:Event)
{
    if (naturepage.ocean_btns.currentFrame == 2)
    {
        ocean_channel.stop();
        ocean_channel = ocean1.play(0,int.MAX_VALUE);
        mySO.data.ocean = "2";
        mySO.flush();

        removeEventListener(Event.ENTER_FRAME,soundFunction);
    }
}
于 2012-11-22T01:10:29.203 回答