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ムービークリップが2番目のフレームで停止したり、ごくわずかなフレームを何度もループしたりしていないことを確認しますか?

もう1つのオプションは、フラグを使用して、すでにサウンドを再生したかどうかを確認することです。

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 に答える