I originally built this in Flash 8, then moved the files over to CS4


Hi, I have a list component where I've loaded song files through xml and everything is working great.

I have now been trying to figure out how to make it play one of the 8 files randomly when it starts playing, instead of it always starting with a specified track (currently track one obviously). So each time a visitor comes to the site it is a different song.

I found a few things on math for AS3 but nothing has worked for this AS2 code that I have tried so far. What am I missing?

PHP Code:
this._lockroot true
//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=0totalTracks;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(sourceartistalbumtitlestream):Void
        
artist_txt.text artist
        
album_txt.text album
        
title_txt.text title
        
mySound = new Sound(); 
         
        
mySound.onSoundComplete = function():Void
             
//----LETS NEXT SONG PLAY---------  
    
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].titletrue); 
    } 
            } 
     
        
mySound.loadSound(source,stream); 
        
clearInterval(songInterval); 
        
songInterval setInterval(songProgress,100); 


function 
populateList():Void
    for(var 
i:Number=0i<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].titletrue);