1
我已經通過各種網站編譯了不同的代碼,介紹如何爲我的網站創建自己的MP3播放器。按鈕工作得很好。滑塊,可視化器和計時器都工作正常。MP3音樂播放器 - AS3,XML和列表框
我只想要列表框,以便它直接從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][email protected];
var myArtist=mySongList[mySong][email protected];
var myURL=mySongList[mySong][email protected];
//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();
}
我在其他代碼還有其他功能,如seekSliders,歌曲計時器和音量。
有人可以向我解釋我將如何去從playlist.xml拉動信息,以便它將直接發送到列表框?
謝謝你的幫助。
你好,我試圖使用你已經投入,但它只是創造了一些更多的錯誤。你能澄清一下list.additem的編碼嗎?我知道標籤就是標籤清單所需要的。我如何着手從現有的XML中提取列表?我是否更改xmlLoader以使其位於URLString中?對不起,我在某些方面不太熟悉xml和AS3 – Jule
嗨,我認爲這是你需要的,這是非常好的/詳細的教程youtube.com/watch?v=x7YRwFoZEt0 –
很好謝謝你。我不知道我是怎麼錯過這個的。 – Jule