-
Flash audio player
Hello all
i have created a flash mp3 player well i have used one from a site http://www.flashmatics.co.uk/blog/?p=10 atm it pulls the tracks in from a xml file, i dont want this i need 6 buttons on the site, and eah click does the same as if it where in the xml list if you catch my drift, the reason i need todo this as the list is ugly and i need nice buttons for selecting the tracks' below is the code if anyine knows how to make it so it loads the tracks via buttins not a list it would be great.
Code:
//make textfields autosize
album_txt.autoSize = "left";
artist_txt.autoSize = "left";
title_txt.autoSize = "left";
//create sound object
var songInterval:Number;
var amountLoaded:Number;
var mySound:Sound;
var nextTrack:Number;
//this will contain all the track details from the xml file
var tracks_array:Array = new Array();
var totalTracks:Number;
//create the XML object and populate with track details
var jukebox_xml:XML = new XML();
jukebox_xml.ignoreWhite = true;
var RootNode:XMLNode;
jukebox_xml.onLoad = function(success:Boolean) {
if (success) {
RootNode = this.firstChild;
totalTracks = RootNode.childNodes.length;
populateTracksArray();
} else {
trace("error loading xml file");
}
};
jukebox_xml.load("tracks.xml");
function populateTracksArray():Void{
for(var i:Number=0; i<totalTracks;i++){
tracks_array[i] = RootNode.childNodes[i];
tracks_array[i].source = RootNode.childNodes[i].attributes.source;
tracks_array[i].artist = RootNode.childNodes[i].attributes.artist;
tracks_array[i].album = RootNode.childNodes[i].attributes.album;
tracks_array[i].title = RootNode.childNodes[i].attributes.title;
}
//play first track
playTrack(tracks_array[0].source,tracks_array[0].artist,tracks_array[0].album,tracks_array[0].title,true);
//populate list component with song titles
populateList();
}
function playTrack(source, artist, album, title, stream):Void{
artist_txt.text = artist;
album_txt.text = album;
title_txt.text = title;
mySound = new Sound();
mySound.onSoundComplete = function():Void{
//lets play the next song
if(continous_comp.selected){
if(list_comp.selectedIndex < (totalTracks -1)){
list_comp.selectedIndex +=1;
}else{
list_comp.selectedIndex = 0;
}
playTrack(tracks_array[list_comp.selectedIndex].source,tracks_array[list_comp.selectedIndex].artist,tracks_array[list_comp.selectedIndex].album,tracks_array[list_comp.selectedIndex].title, true);
}
}
mySound.loadSound(source,stream);
clearInterval(songInterval);
songInterval = setInterval(songProgress,100);
}
function populateList():Void{
for(var i:Number=0; i<totalTracks;i++){
list_comp.addItem(tracks_array[i].title,tracks_array[i].source);
}
_root.list_comp.selectedIndex = 0;
}
//create a listener for the list component
var compListener:Object = new Object();
list_comp.addEventListener("change", compListener);
compListener.change = function(info:Object):Void{
playTrack(info.target.value,tracks_array[list_comp.selectedIndex].artist,tracks_array[list_comp.selectedIndex].album,tracks_array[list_comp.selectedIndex].title, true);
}
//this controls download bar and playback
function songProgress():Void{
amountLoaded = (mySound.getBytesLoaded()/mySound.getBytesTotal());
progressbars_mc.downloadbar_mc._width = amountLoaded * 200;
progressbars_mc.playback_mc._x = (mySound.position/mySound.duration)*amountLoaded * 200;
position_txt.text = mySound.position;
duration_txt.text = mySound.duration;
trace(mySound.duration);
playback_txt.text = progressbars_mc.playback_mc._x;
}
//controls
var soundPosition:Number;
var paused:Boolean = false;
controlbar_mc.pause_btn.onRelease = function():Void{
soundPosition = mySound.position;
paused = true;
mySound.stop();
}
controlbar_mc.play_btn.onRelease = function():Void{
if(paused){
mySound.start(soundPosition/1000);
paused = false;
}
}
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|