如何使用AS3中的相同按钮循环和停止声音?

时间:2012-12-11 03:39:49

标签: actionscript-3

我在舞台上有4个按钮,我需要一个代码,让我可以点击其中一个,“无限”地循环一个特定的声音,当再次点击时,声音停止。声音最初没有播放。此外,当其中一个声音循环播放时,如果我按下另一个按钮,我希望先前的声音停止,然后播放新的声音。

为了帮助更直观地了解这一点,我将解释我的项目。我必须创建一个类似于在线吉他调谐器的“应用程序”。这个功能有点像我想重新创建的那样:

http://www.gieson.com/Library/projects/utilities/tuner/

我甚至不知道从哪里开始编码...非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

实际代码完全取决于你在声音中加载的方式,所以我会为代码编写“骨架”。

var currentSound:Sound = null;
var currentSoundChannel:SoundChannel;

var sound1:Sound = /* Load me */
var sound2:Sound = /* Load me */


button1.addEventListener(MouseEvent.CLICK, playSound1);
function playSound1(event:MouseEvent)
{
    playSound(sound1);
}

button2.addEventListener(MouseEvent.CLICK, playSound2);
function playSound2(event:MouseEvent)
{
    playSound(sound2);
}


function playSound(sound:Sound):void
{
    if (currentSound != null)
    {
        // Stop the current music
        currentSoundChannel.stop();
    }

    if (currentSound == sound)
    {
        // Stop playing ANY sound
        currentSound = null;
        currentSoundChannel = null;
    }
    else
    {
        // Play a different sound
        currentSound = sound;
        currentSoundChannel = sound.play();
    }
}