Flash 用多个按钮控制多首歌曲

Flash 用多个按钮控制多首歌曲,flash,audio,Flash,Audio,当我按下一个按钮时,我正试图编程播放歌曲。我有六个按钮和六首歌;当我按下不同的按钮时,我想播放不同的歌曲。如何编写as3编码,在我按下按钮时启动并播放每首歌曲,但同时停止播放与上一个按钮关联的上一首歌曲。您可以使用SoundMixer中的stopAll取消flash脚本中所有声音的播放 import flash.media.SoundMixer; SoundMixer.stopAll(); 有关更多详细信息,请参阅API参考: 然后你只需播放与按钮相关联的歌曲, 至于播放歌曲,您可以使用一些

当我按下一个按钮时,我正试图编程播放歌曲。我有六个按钮和六首歌;当我按下不同的按钮时,我想播放不同的歌曲。如何编写as3编码,在我按下按钮时启动并播放每首歌曲,但同时停止播放与上一个按钮关联的上一首歌曲。

您可以使用SoundMixer中的stopAll取消flash脚本中所有声音的播放

import flash.media.SoundMixer;
SoundMixer.stopAll();
有关更多详细信息,请参阅API参考:

然后你只需播放与按钮相关联的歌曲, 至于播放歌曲,您可以使用一些可用的开源mp3播放器(如果这是您想要播放的格式)。我在.fla文件中找到的一个位于此处:


(单击:开始,然后:我是一名程序员,请给我代码)

这里有一个简单、优化的方法,可以使用不同的按钮从库中运行不同的歌曲。。请记住,这是假设它们都在您的库中命名,并遵循约定“Song1”、“Song2”等

此外,您的按钮必须这样命名:“Song1”、“Song2”

如果您正在制作音乐播放器,此解决方案可能并不理想,但如果您只有少量声音,则此解决方案非常理想,因为它经过了大力优化

(请注意:使用大的声音文件将大大增加.FLA文件的大小)

另请注意: 将其更改为所有歌曲都在一个数组中非常简单,您可以使用上面的子字符串方法在特定数组索引处播放歌曲。这可能是最好的办法

var soundchannel:SoundChannel = new SoundChannel(); //an audio channel to use to play sounds
addEventListener(MouseEvent.CLICK,handlesongs); // adds the event listener for mouse evens
function handlesongs(e:MouseEvent)
{
    if (e.target.name.indexOf("Song") >= 0) // if the button is a "Song" button
    {
        var songnumber = e.target.name.substr(4); // set the song number based on the button's name
        var getsong = getDefinitionByName("Song" + songnumber.toString()) as Class; // get the class of the song to play
        var songtoplay = new getsong(); // assign a variable to the song's class
        soundchannel.stop(); // stop all current sound
        soundchannel = songtoplay.play(); // play the selected song
    }
}