【发布时间】:2014-04-03 20:01:29
【问题描述】:
我已经通过各种网站编译了不同的代码,以了解如何为我的网站创建自己的 MP3 播放器。按钮工作得很好。滑块、可视化工具和计时器都工作正常。
我只想要列表框,以便它直接从 XML 文件 (playlist.xml) 中提取数据。我想我可能会使用类似于播放按钮的功能,但拥有它以便每个新的 .addItem 都是我的 xml 中的任何内容。
这里是 xml 和列表框的代码:
XML::
var mySongList:XMLList;
var myTotal:Number;
var s:Sound;
var c:SoundChannel;
var currentSong:Number=0;
var lastPosition:Number=0;
var dragging:Boolean=false;
var boundingBox:Rectangle=new Rectangle(0,0,175,0);
var pos:int = 0;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("/Music_Test/playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML=new XML(e.target.data);
mySongList=myXML.song;
myTotal=mySongList.length();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader=null;
playSong(0);
}
function playSong(mySong:Number):void {
var myTitle=mySongList[mySong].@songName;
var myArtist=mySongList[mySong].@artist;
var myURL=mySongList[mySong].@url;
//displays the song title and artis in the text fields
title_txt.text=myTitle;
artist_txt.text=myArtist;
if (c) {
c.stop();
c=null;
}
s = new Sound();
s.load(new URLRequest(myURL));
c=s.play(lastPosition);
c.addEventListener(Event.SOUND_COMPLETE, nextSong);
visTimer.start();
c.stop();
}
这是列表框的代码:
listbox.addItem({label:"Song1"});
listbox.addItem({label:"Song2"});
listbox.addEventListener (MouseEvent.CLICK, playList);
function playList(e:MouseEvent):void {
c.stop();
c = s.play(0);
tB3();
txtTotalTime.text = timeCalculation(s.length);
txtCurrentTime.text = timeCalculation (c.position);
myTimer.start();
seekSlider.minimum = 0;
seekSlider.maximum = Math.floor(s.length);
Volume();
}
我还有其他代码用于其他功能,例如 seekSlider、歌曲计时器和音量。
有人可以向我解释我将如何从 playlist.xml 中提取信息以便它直接发送到列表框吗?
感谢您的帮助。
【问题讨论】:
标签: xml actionscript-3 listbox mp3 audio-player