开始之前,先看看效果:效果
下面看看是怎么实现的。 新建一个图层,将我们要用到的组件List和MediaPlayBack拖到我们新建的图层中,分别命名为MusicList,Mianban。 再新建一个as图层插入两个关键帧,用来放置代码。第一帧中放如下代码:
//主要作用,加载XML文件,并从中分析出歌名和所在的URL stop(); fscommand("allowscale", false); fscommand("showmenu", false); System.useCodepage = true;//防止乱码出现 var NowPlay; //定义一个播放指针 var LoadXML = new XML(); var ListArr = new Array(); LoadXML.ignoreWhite = true; LoadXML.load("musiclist.xml");//加载XML LoadXML.onLoad = function(Ok) { if (Ok) { XMLFenxi(); trace(ListArr[0].Music_name); play(); } }; //XML分析函数,将结果存入ListArr数组. function XMLFenxi() { for (var i = 0; i<LoadXML.firstChild.childNodes.length; i++) { var TempObj = LoadXML.firstChild.childNodes[i].attributes; ListArr.push({Music_url:TempObj.Music_url, Music_name:TempObj.Music_name}); } }
第二帧中放如下代码:
stop(); for (var i = 0; i<ListArr.length; i++) {//将内容读入列表 this.MusicList.addItem(ListArr[i].Music_name, ListArr[i].Music_url); } /////////////////////////建立一个监听对象,接受change事件. var mylisten = new Object(); mylisten.change = function() { NowPlay = MusicList.selectedIndex;//将选定的歌曲列表索引传递给指针. ready(NowPlay); }; /////////////////////////////////////////////// this.MusicList.addEventListener("change", mylisten); ////////////////////////////////////////////// //建立一个监听对象,接受change事件 var playlisten = new Object(); playlisten.complete = function() { NowPlay++;//指针加1 ready(NowPlay); }; ///////////////////////////////////////////// Mianban.addEventListener("complete", playlisten); //播放预备函数 function ready(index) { with (Mianban) { contentPath = MusicList.getItemAt(index).data; play(); } }
点击下载原文件
也许有朋友会问,音乐列表要怎么样才能更新呢? 嗯,要更新音乐列表,就要更新xml文件,你可以手动更新,也可以用ASP自动生成xml文件,怎么生成呢? 也就是用ASP的输出方法:response.write,写成xml文件的格式就OK了,哈,自己去试试! |