Mp3 Player
2009-05-30 12:07:53 来源:WEB开发网首先使用 URLLoader 读取外部 musicList.xml 文件。读取成功后调用 initSoundList,将 xml 的包装成一个 DataProvider 对象赋给 music_list.dataProvider。音乐列表初始化完成。
下面加入一个侦听器,当鼠标点击了列表中的某一项时,会触发 Event.CHANGE 事件,调用 changeSound 函数,这里我们只为了测试,打印出相应的 url 属性,接下来要在这个函数中实现音乐的播放。
三、播放音乐
要想在 flash 中播放音乐,非常简单:
sound = new Sound(new URLRequest(url));
sound.play();
现在 url 已经得到了,在 changeSound 方法中直接加入这两句(别忘了导入 import flash.media.Sound 类):
private function changeSound(evt:Event):void {
var url:String = ComboBox(evt.target).selectedItem.url;
var sound:Sound = new Sound(new URLRequest(url));
sound.play();
}
OK,这样就可以点播了。但是当我们切换音乐时,两个会同时播放,这显然不对。那么就应该在切换时判断一下,是否已经有音乐在播放,如果有就把之前的声音关掉,再播放当前选中的音乐。
在 AS 3 中,Sound 类只负责加载和播放,声道控制和停止播放声音由 SoundChannel 类负责。获得 SoundChannel 对象的方法也比较特殊,并不是像平常一样 new 一个对象出来。而是在 Sound 对象调用 play() 方法时作为返回值,返回一个 SoundChannel 对象,拿到这个对象就可以控制当前 Sound 对象的音量或关闭声音了。由于我们每次都只播放一个 Sound,所以 SoundChannel 对象也只需要一个,把它作为一个成员变量(别忘了导入 import flash.media.SoundChannel):
更多精彩
赞助商链接