Mp3 player problem

Hello Guys,

I would really appreciate you guys help. Here is the problem. I am using Voetsjoeba old Mp3 XML player for a site but I am stuck. The basic mechanism is that is plays a list of songs from a XML list.

My problem is how would I have the ability of creating a button (non generating that is), that can play a song from the xml in the audio player.

A friend add a function to the code and said I should place call it in a button:
Here is the added function in red:
// mp3Player class
_soundbuftime = 1;
mp3Player = function (songs, interF, reservedDepth) {
if (songs != undefined && interF != undefined && reservedDepth != undefined && typeof songs == “object” && typeof interF == “object” && typeof reservedDepth == “number”) {
this.sound = new Object(new Sound(_root));
this.songs = songs;
this.player = interF;
this.positionDump = 0;
this.songs.index = 0;
this.sound.paused = false;
this.sound.stopped = false;
this.curVolume = 100;
this.player.songInfo.html = true;
this.player.songInfo.condenseWhite = true;
this.player.songInfo.autoSize = “center”;
this.safeDepth = reservedDepth-1;
this.player.progressIndicator.offset = this.player.progressIndicator._x;
this.loadHandler = _root.createEmptyMovieClip(“LH”, ++this.safeDepth);
this.progressHandler = _root.createEmptyMovieClip(“PH”, ++this.safeDepth);
this.volumeHandler = _root.createEmptyMovieClip(“VH”, this.safeDepth+3);
this.volumeSlideHandler = _root.createEmptyMovieClip(“VSH”, ++this.safeDepth+4);
// Start functions ----------------------------------------------------------------------------------------------------
this.setRollOver(1);
this.setControls();
this.setInitialVolume(100);
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.showLoaded();
this.showSongInfo();
this.indicateStatus(1);
this.indicateProgress();
// this.enableDrag();
//
} else {
trace(“Invalid parameter(s) specified.”);
}
};
mp3Player.prototype.stopProgressIndicator = function() {
delete this.progressHandler.onEnterFrame;
};
mp3Player.prototype.resetProgressIndicator = function() {
delete this.progressHandler.onEnterFrame;
this.player.progressIndicator._x = this.player.progressIndicator.offset;
};
mp3Player.prototype.disableDrag = function() {
delete this.player.progressIndicator.onPress;
delete this.player.progressIndicator.onRelease;
delete this.player.progressIndicator.onReleaseOutside;
};
mp3Player.prototype.indicateStatus = function(stat) {
var tar;
stat>0 ? tar=this.player.playButton : stat+1 ? tar=this.player.pauseButton : tar=this.player.stopButton;
this.player.statusIndicator.easeX(tar._x);
};
mp3Player.prototype.showSongInfo = function() {
var artist = this.songs[this.songs.index].artist;
var title = this.songs[this.songs.index].title;
var output = artist+" - "+title;
this.player.songInfo.htmlText = output;
};
mp3Player.prototype.next = function() {
this.sound.stop();
this.songs.index++;
if (this.songs.index>this.songs.length-1) {
this.songs.index = 0;
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();
};
mp3Player.prototype.setInitialVolume = function(x) {
var ref = this;
var tgt = x/100*this.player.volumeHeight;
var vitgt = this.player.volumeBar._y-tgt;
this.player.volumeNR.text = 100;
this.sound.setVolume(x);
this.curVolume = x;
this.volumeHandler.onEnterFrame = function() {
ref.player.volumeIndicator._y = vitgt-(vitgt-ref.player.volumeIndicator._y)/1.2;
ref.player.volumeBar._height = tgt-(tgt-ref.player.volumeBar._height)/1.2;
if (ref.player.volumeIndicator._y>vitgt-1 && ref.player.volumeIndicator._y<vitgt+1 && ref.player.volumeBar._height>tgt-1 && ref.player.volumeBar._height<tgt+1) {
delete this.onEnterFrame;
}
};
};
[COLOR=Red]mp3Player.prototype.playSongNum = function(x) {
this.sound.stop();
this.songs.index = x;
if (this.songs.index>this.songs.length-1) {
this.songs.index = this.songs.length-1;
}
if (this.songs.index<0) {
this.songs.index = 0;
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();

}[/COLOR]
mp3Player.prototype.setVolumeDrag = function(x) {
if (x>100) {
x = 100;
}
if (x<0) {
x = 0;
}
var ref = this;
var tgt = x/100*this.player.volumeHeight;
this.sound.setVolume(x);
this.curVolume = x
this.player.volumeNR.text = Math.round(x);
this.volumeHandler.onEnterFrame = function() {
ref.player.volumeBar._height = tgt-(tgt-ref.player.volumeBar._height)/1.2;
if (ref.player.volumeBar._height>tgt-1 && ref.player.volumeBar._height<tgt+1) {
delete this.onEnterFrame;
}
};
};
mp3Player.prototype.dragVolumeSlider = function() {
var ref = this;
var maxH = this.player.volumeHeight;
var vi = this.player.volumeIndicator;
var vb = this.player.volumeBar;
this.volumeSlideHandler.onEnterFrame = function() {
conv = {x:0, y:_root._ymouse};
globalToLocal(conv);
this._y = conv.y;
if (conv.y>=vb._y-maxH-1 && conv.y<=vb._y+1) {
vi._y = conv.y;
ref.setVolumeDrag((vb._y-conv.y)*100/maxH);
}
};
};
mp3Player.prototype.previous = function() {
this.sound.stop();
this.songs.index–;
if (this.songs.index<0) {
this.songs.index = this.songs.length-1;
}
this.showSongInfo();
this.sound = new Object(new Sound(_root));
this.sound.loadSound(this.songs[this.songs.index].url, true);
this.sound.setVolume(this.curVolume);
this.showLoaded();
this.indicateStatus(1);
this.indicateProgress();
};
mp3Player.prototype.indicateProgress = function() {
var ref = this;
this.progressHandler.onEnterFrame = function() {
var played = ref.sound.position;
var total = ref.songs[ref.songs.index].duration;
ref.player.progressIndicator._x = ref.player.progressIndicator.offset+((played/total)*ref.player.loadWidth);
if (played>=total) {
delete this.onEnterFrame;
ref.resetProgressIndicator();
ref.next();
}
};
};
mp3Player.prototype.showLoaded = function() {
var ref = this;
this.loadHandler.onEnterFrame = function() {
var loaded = ref.sound.getBytesLoaded();
var total = ref.songs[ref.songs.index].totalbytes;
ref.player.loadBar._width = (loaded/total)ref.player.loadWidth;
if (loaded == total) {
delete this.onEnterFrame;
}
};
};
mp3Player.prototype.setRollOver = function(grow) {
if (grow) {
this.player.previousButton.onRollOver = this.player.stopButton.onRollOver=this.player.pauseButton.onRollOver=this.player.playButton.onRollOver=this.player.nextButton.onRollOver=function () {
this.grow();
};
this.player.previousButton.onRollOut = this.player.stopButton.onRollOut=this.player.pauseButton.onRollOut=this.player.playButton.onRollOut=this.player.nextButton.onRollOut=function () {
this.shrink();
};
} else {
this.player.previousButton._alpha = this.player.stopButton._alpha=this.player.pauseButton._alpha=this.player.playButton._alpha=this.player.nextButton._alpha=30;
this.player.previousButton.onRollOver = this.player.stopButton.onRollOver=this.player.pauseButton.onRollOver=this.player.playButton.onRollOver=this.player.nextButton.onRollOver=function () {
this.fadeIn();
};
this.player.previousButton.onRollOut = this.player.stopButton.onRollOut=this.player.pauseButton.onRollOut=this.player.playButton.onRollOut=this.player.nextButton.onRollOut=function () {
this.fadeOut();
};
}
};
mp3Player.prototype.setControls = function() {
var ref = this;
var playB = this.player.playButton;
var prevB = this.player.previousButton;
var stopB = this.player.stopButton;
var nextB = this.player.nextButton;
var pauseB = this.player.pauseButton;
var volIndic = this.player.volumeIndicator;
volIndic.onPress = function() {
ref.dragVolumeSlider();
};
volIndic.onRelease = volIndic.onReleaseOutside=function () {
delete ref.volumeSlideHandler.onEnterFrame;
};
pauseB.onRelease = function() {
if (!ref.sound.stopped) {
ref.sound.stop();
ref.indicateStatus(0);
ref.sound.paused = true;
ref.sound.stopped = false;
ref.sound.pausedPosition = ref.sound.position;
ref.stopProgressIndicator();
}
};
stopB.onRelease = function() {
ref.sound.stop();
ref.indicateStatus(-1);
ref.sound.stopped = true;
ref.sound.paused = false;
ref.sound.pausedPosition = 0;
ref.resetProgressIndicator();
};
playB.onRelease = function() {
if (ref.sound.stopped) {
ref.indicateProgress();
ref.indicateStatus(1);
ref.sound.start(0, 1);
ref.sound.stopped = false;
} else if (ref.sound.paused) {
ref.indicateProgress();
ref.indicateStatus(1);
ref.sound.start(ref.sound.pausedPosition/1000, 1);
ref.sound.paused = false;
}
};
nextB.onRelease = function() {
ref.resetProgressIndicator();
ref.next();
};
prevB.onRelease = function() {
ref.resetProgressIndicator();
ref.previous();
};
};
mp3Player.prototype.enableDrag = function() {
var ref = this;
this.player.progressIndicator.onPress = function() {
ref.sound.stop();
ref.stopProgressIndicator();
ref.indicateStatus(0);
ref.sound.paused = true;
ref.sound.stopped = false;
total = ref.songs[ref.songs.index].duration;
this.onEnterFrame = function() {
conv = {x:_root._xmouse};
globalToLocal(conv);
this._x = conv.x;
if (conv.x<ref.player.loadBar._x) {
this._x = ref.player.loadBar._x;
}
if (conv.x>ref.player.loadBar._x+ref.player.loadWidth) {
this._x = ref.player.loadBar._x+ref.player.loadWidth;
}
var percent = ((this._x-ref.player.loadBar._x)/ref.player.loadWidth)100;
this.newPosition = (percent
total)/100;
};
};
this.player.progressIndicator.onRelease = this.player.progressIndicator.onReleaseOutside=function () {
if (this.newPosition>=ref.songs[ref.songs.index].duration) {
this.newPosition = ref.songs[ref.songs.index].duration-1;
}
delete this.onEnterFrame;
ref.sound.start(ref.player.progressIndicator.newPosition/1000, 1);
ref.sound.paused = false;
ref.sound.stopped = false;
ref.indicateStatus(1);
ref.indicateProgress();
};
};
//prototypes
MovieClip.prototype.fadeIn = function() {
this.onEnterFrame = function() {
this._alpha += 2;
this._alpha>=100 ? delete this.onEnterFrame : null;
};
};
MovieClip.prototype.fadeOut = function() {
this.onEnterFrame = function() {
this._alpha -= 2;
this._alpha<=30 ? delete this.onEnterFrame : null;
};
};
MovieClip.prototype.grow = function() {
var t = 150;
this.onEnterFrame = function() {
this._xscale = this._yscale=t-(t-this._xscale)/1.2;
if (this._xscale>t-1 && this._xscale<t+1) {
delete this.onEnterFrame;
}
};
};
MovieClip.prototype.shrink = function() {
var t = 100;
this.onEnterFrame = function() {
this._xscale = this._yscale=t-(t-this._xscale)/1.2;
if (this._xscale>t-1 && this._xscale<t+1) {
delete this.onEnterFrame;
}
};
};
MovieClip.prototype.easeX = function(t) {
this.onEnterFrame = function() {
this._x = t-(t-this._x)/1.2;
if (this._x>t-1 && this._x<t+1) {
delete this.onEnterFrame;
}
};
};
// creation of mp3Player class instance and junk
songsArray = new Array();
playerInterface = new Object();
playerInterface.playButton = this.playButton;
playerInterface.stopButton = this.stopButton;
playerInterface.pauseButton = this.pauseButton;
playerInterface.previousButton = this.previousButton;
playerInterface.nextButton = this.nextButton;
playerInterface.loadBar = this.loadbar;
playerInterface.loadWidth = 165;
playerInterface.progressIndicator = this.proIndic;
playerInterface.statusIndicator = this.statusIndic;
playerInterface.songInfo = this.songInfo;
playerInterface.volumeBar = this.volumeBar;
playerInterface.volumeNR = this.volumeNR;
playerInterface.volumeIndicator = this.volumeIndic;
playerInterface.volumeHeight = 60;
//---------------------------------------------------
XMLRetrieve = new XML();
XMLRetrieve.ignoreWhite = true;
XMLRetrieve.load(“onlineplaylist_stream.xml”);
XMLRetrieve.onLoad = function() {
for (var j = 0; j<this.firstChild.childNodes.length; j++) {
/
Handle duration and convert to milliseconds /
dur = this.firstChild.childNodes[j].attributes.duration;
dblPnt = dur.indexOf(":");
mins = Number(dur.substr(0, dblPnt));
sec = Number(dur.substr(dblPnt+1, dur.length));
ms = ((mins
60)+sec)1000;
/
Handle filesize and convert to bytes */
songsArray.push({title:this.firstChild.childNodes[j].attributes.title, artist:this.firstChild.childNodes[j].attributes.artist, url:this.firstChild.childNodes[j].firstChild.nodeValue, duration:ms, totalbytes:Number(this.firstChild.childNodes[j].attributes.filesize)});
}
player = new mp3Player(songsArray, playerInterface, 1);
};

I tried to add a the ability to a button to play it like:
track1_btn.onRealease = function () {
playSongNum(3);
}

But it doesn’t work. Could someone help me.

Thanks