Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3:当currentframe==时,如何播放声音?_Actionscript 3 - Fatal编程技术网

Actionscript 3 AS3:当currentframe==时,如何播放声音?

Actionscript 3 AS3:当currentframe==时,如何播放声音?,actionscript-3,Actionscript 3,我下面的代码不幸导致声音以电影的帧速率重复。我只需要一个简单的“在特定帧播放声音”功能,但无法解决这个问题。谢谢你的帮助 addEventListener(Event.ENTER_FRAME,soundFunction); function soundFunction(event:Event) { if (naturepage.ocean_btns.currentFrame == 2) { ocean_channel.stop(); ocean_channel = ocean1.

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

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();
}

}

这似乎是对的。你确定电影剪辑没有在第二帧时停止,或者没有反复循环很少的帧吗

另一个选项是使用标志查看您是否已经播放了声音:

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);
    }
}
或在播放声音后删除事件侦听器:

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);
    }
}

这似乎是对的。你确定电影剪辑没有在第二帧时停止,或者没有反复循环很少的帧吗

另一个选项是使用标志查看您是否已经播放了声音:

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);
    }
}
或在播放声音后删除事件侦听器:

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);
    }
}

太棒了,谢谢。我使用了你的标志思想并实现了我的共享对象,因为我有几个帧需要重复。很好,太棒了,谢谢。我使用了你的标志思想并实现了我的共享对象,因为我有几个帧需要重复。它工作得很好。