·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0的sound类常用技巧整理(8)

时间:2013-05-08 17:11CuPlayer.com
问题八 当我们播放音乐以后,想知道声音何时播放结束。(成业注:当我们播放完一首歌曲后想播放器自动切换到下一首,这时就需要音乐播放结束的消息) 解决方法 侦听soundComplete事件 有很多时候我们需要知道音乐在

问题八
当我们播放音乐以后,想知道声音何时播放结束。(成业注:当我们播放完一首歌曲后想播放器自动切换到下一首,这时就需要音乐播放结束的消息)
解决方法
侦听soundComplete事件
有很多时候我们需要知道音乐在什么时候播放结束。比如:在正式的内容开始之前,我们想让用户先听完一段介绍,那么就需要获取介绍是否播放结束的信息;再比如:有个带索音乐列表的播放器,当一首歌播放完毕之后要自动切换到下一首,就需要获取当前的歌是否已经播放结束。
这一节中我们开始讨论另外一个类,它叫做flash.media.SoundChannel。当我们调用sound对象的play()方法的时候,它返回 一个SoundChannel对象。各种声音在swf文件中播放都有唯一的一个SoundChannel对象代表,所有的这些SoundChannel混 合在一起构成了最终的音频输出。
当一个声音文件播放结束的时候,和它绑定的SoundChannel对象将引发一个soundComplete事件,它被定义为: flash.events.Event.SOUND_COMPLETE.我们可以为SoundChannel对象的SOUND_COMPLETE事件添加 一个事件处理函数,处理当声音播放结束的时候,程序干什么。
下面的例子演示了一个简单的播放列表(a simple playlist)

  1. package { 
  2. import flash.display.Sprite; 
  3. import flash.media.Sound; 
  4. import flash.net.URLRequest; 
  5. import flash.events.Event; 
  6. import flash.media.SoundChannel; 
  7. public class PlayList extends Sprite { 
  8. private var _sound:Sound; 
  9. private var _channel:SoundChannel; 
  10. private var _playList:Array; 
  11. //歌曲列表 
  12. private var _index:int = 0
  13. //当前歌曲 
  14. public function PlayList( ) { 
  15. //创建歌曲列表并开始播放 
  16. _playList = ["song1.mp3", 
  17. "song2.mp3", 
  18. "song3.mp3"]; 
  19. playNextSong( ); 
  20. private function playNextSong( ):void{ 
  21. //如果列表中还有歌曲的话 
  22. if(_index < _playList.length) { 
  23. //创建一个新的Sound对象,加载并播放之 
  24. // 数组_playList[_index]包含了要播放的下一首歌歌名及路径 
  25. _sound = new Sound( ); 
  26. _sound.load(new URLRequest(_playList[_index])); 
  27. _channel = _sound.play( ); 
  28. // 为_channel添加事件侦听处理函数 
  29. _channel.addEventListener(Event.SOUND_COMPLETE,onComplete); 
  30. // 计数器加1 
  31. _index++; 
  32. public function onComplete(event:Event):void{ 
  33. playNextSong( ); 

这里,变量index从0开始计数,它将导致_playList[index]值变成为"song.mp3",这样第一个加载的歌曲是 "song.mp3"。然后,index的值增加了,当soundComplete事件被引发,playNextSong()方法加载了 _playList里的下一首歌,直到index的值比列表里的歌曲还大为止。
译者注:上面的这个例子的使用方法:
1,新建立一个fla文件,命名,保存;
2,找三首歌曲(mp3格式)复制到fla的那个目录里面,命名为song1.mp3,song2.mp3,song3.mp3(mp3是后缀名);
3,新建一个.as文件,把上述代码复制到其中,保存在fla同一个目录,命名为PlayList.as;
4,把fla文件的document class属性(选中舞台,打开属性面板就能看到)设置为PlayList;
5,按ctrl+enter测试。我们将依次听到上面的三首歌

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器