//定义XML和数组 var myXML = new XML(); var mp3total = new Array(); var mp3name = new Array(); var mp3 = new Array(); //定义s为声音类 var s = new Sound(); //定义MP3和XML的路径 var url = "music/"; //定义歌曲ID,也就是第几第几首 var id = 0; //定义已播放时间,在后面的播放/暂停按钮里会用得着的 var played = 0; //定义停止按钮参数,判断是否未停止播放,也就是说key==true时暂停按钮可以按...(好像弄反了) var key = true; //定义暂停按钮参数,判断是否已经暂停播放 var paused = false; 定义完了上面的内容后,让我们进行下一步...第二步:
//定义预读函数 function preloading() { //给preload赋予enterframe事件,preload就是进度条,后面会给大家解释... preload.onEnterFrame = function() { //取得MP3的总字节数和已下载字节数 var loaded = s.getBytesLoaded(); var total = s.getBytesTotal(); //进度条显示的长度,取160的原因是因为最大长度有160...-___-b //----- qhwa 注:用_xscale可以更简单、通用些 this._width = loaded / total * 160; if (loaded == total) { //下载完成后删除enterframe事件 delete this.onEnterFrame; } }; } 这里相信用不着做多少解释了...做过FLASH LOADING的朋友们应该都用过,这里只不过是把影片的LOADING换成MP3的LOADING而已现在开始第三步:
//播放声音函数 function loadsound(x) { //把已播放时间设置为0,用处上面说过了..-___-b played = 0; //为暂停和停止按钮变量重新赋值 paused = false; key = true; //这里重复s = new Sound()是为了让声音已播放的毫秒数(position)重置为0,我找不到更好的解决办法,还望大虾们指教... s = new Sound(); //读取MP3,url上面定义过了,是MP3的路径,x是函数里的参数,这里的x代表歌曲的MP3名,后面的true是让声音以数据流的格式播放 s.loadSound(url + x, true); //trackname是显示歌曲名的文本框,id已经被定义为歌曲的序列号,由于是从0开始的,所以在这里要+1,总不能让第一首显示为0吧...中间冒号里的内容是隔开序列号与MP3的曲名,你可以换成自己喜欢的符号.后面的mp3name[id]就是加载进数组里的MP3歌名了,下面一个函数里会做解释 trackname = (id + 1) + ". - " + mp3name[id]; //开始播放音乐... s.start(); //onSoundComplete的作用是声音停止播放时调用后面的函数 s.onSoundComplete = function() { //又是个条件表达式,解释起来真烦...这东西一般是懒人才用的,比如说我...-___-b,写成if大家会容易看明白些...这里是让判断问号(?)前面的(id == mp3total.length - 1)是否成立,成立的话id赋值为0,否则id赋值为id + 1 id = (id == mp3total.length - 1) ? 0 : (id + 1); //执行loadsound函数,也就是现在的函数再执行一次,小括号里面参数是给函数里的x赋值为mp3[id],也就是歌曲名,mp3这个数组在下面解释... loadsound(mp3[id]); //大括号就用不着解释了吧? }; //mix就是在右边乱蹦乱跳的东西,现在我没办法拿到MP3各个频率的音高,只能用个假的来代替,呵呵 mix.gotoAndStop(1); //执行preloading函数 preloading(); } 打了好多字哦,有点累了,写完下面的再休息