我正在尝试对歌曲进行编程以在我按下按钮时播放。我有六个按钮和六首歌曲;当我按下不同的按钮时,我希望播放不同的歌曲。如何编写 as3 编码,当我按下按钮时开始并播放每首歌曲,但也停止与上一个按钮相关联的上一首正在播放的歌曲。
问问题
551 次
2 回答
0
这是使用不同按钮运行库中不同歌曲的简单优化方法。请记住,这是假设它们都在您的库中命名,并遵循约定“Song1”、“Song2”等。
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
}
}
此外,您的按钮必须命名为:“Song1”、“Song2”。
如果您正在制作音乐播放器,此解决方案可能并不理想,但如果您只有几个声音,那么它是理想的,因为它经过了高度优化。
(请注意:使用大声音文件会大大增加 .FLA 文件的大小)
另请注意:更改此设置非常简单,以便所有歌曲都在一个数组中,并且您可以使用上面的子字符串方法在特定数组索引处播放歌曲。这可能是最好的解决方法。
于 2012-09-06T10:35:11.603 回答
0
您可以使用 SoundMixer 中的 stopAll 来取消播放 Flash 脚本中的所有声音,
import flash.media.SoundMixer;
SoundMixer.stopAll();
查看 API 参考以获取更多详细信息:
然后您只需播放与按钮关联的歌曲,至于播放歌曲您可以使用一些可用的开源 mp3 播放器(如果这是您想要播放的格式)。我在 .fla 文件中找到的一个位于此处:
http://hotpot.uvic.ca/howto/audio.htm(点击:开始,然后:我是程序员,给我代码)
于 2012-09-06T05:25:46.420 回答