Hello,
I am trying to make this MP3 player I have shuffle the tracks and I was told that there was no way to do this. I don’t have very much experience but I am sure there is a way to do this. If anyone can help or walk me through I would greatly appreciate this.
here is the actionscript:
stop();
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.filters.BlurFilter;
import flash.filters.GlowFilter;
var folder:String = “modules/mp3player/”;
//var myXML:String = “songs.xml”;
var myXML:String = _root.moduleData;
var playState:Boolean = false;
var backgroundImage:String;
var playerAutoPlay:Boolean = false;
var artist:Array = new Array();
var trackNames:Array = new Array();
var trackFiles:Array = new Array();
var trackDuration:Array = new Array();
var indicatorStartX:Number = duration_mc.indicator_mc._x;
var total:Number = 0;
_root.toggleMusic(true);
var musicXML:XML = new XML();
musicXML.ignoreWhite = true;
musicXML.onLoad = function(success) {
if (success) {
backgroundImage = this.firstChild.attributes.artwork;
loadMovie(folder+backgroundImage, background_mc);
if (this.firstChild.attributes.autoplay == “yes”) {
playerAutoPlay = true;
}
total = this.firstChild.childNodes.length;
for (var i:Number = 0; i<this.firstChild.childNodes.length; i++) {
artist.push(this.firstChild.childNodes*.childNodes[0].firstChild.nodeValue);
trackNames.push(this.firstChild.childNodes*.childNodes[1].firstChild.nodeValue);
trackFiles.push(this.firstChild.childNodes*.childNodes[2].firstChild.nodeValue);
trackDuration.push(this.firstChild.childNodes*.childNodes[3].firstChild.nodeValue);
var newTrack:MovieClip = tracklisting_mc.target_mc.attachMovie(“trackRow”, “trackRow”+i, i);
newTrack._y += (newTrack.trackRowBg_mc._height)i;
newTrack.ID = i;
newTrack.playicon_mc._visible = false;
newTrack.artist_txt.html = true;
newTrack.artist_txt.htmlText = artist;
newTrack.trackname_txt.html = true;
newTrack.trackname_txt.htmlText = trackNames*;
newTrack.tracktime_txt.html = true;
newTrack.tracktime_txt.htmlText = trackDuration*;
newTrack.onRollOver = function() {
var fadeDown:Tween = new Tween(this, “_alpha”, None.easeOut, this._alpha, 50, 0.4, true);
};
newTrack.onRollOut = newTrack.onReleaseOutside = function() {
var fadeDown:Tween = new Tween(this, “_alpha”, None.easeOut, this._alpha, 100, 0.4, true);
};
newTrack.onRelease = function() {
_global.songID = this.ID;
resetTracks();
startTheMusic(trackFiles[this.ID]);
this.playicon_mc._visible = true;
};
}
tracklisting_mc.scrollInfo();
if (playerAutoPlay == true) {
_global.songID = 0;
startTheMusic(trackFiles[0]);
tracklisting_mc.target_mc.trackRow0.playicon_mc._visible = true;
}
} else {
trace(“cannot load XML”);
}
};
musicXML.load(myXML);
function resetTracks() {
for (var i:Number = 0; i<total; i++) {
tracklisting_mc.target_mc[“trackRow”+i].playicon_mc._visible = false;
}
}
resetTracks();
var mySong:Sound = new Sound();
function startTheMusic(file) {
info_mc._alpha = 0;
info_mc.artist_txt.html = true;
info_mc.artist_txt.htmlText = artist[_global.songID];
info_mc.songtitle_txt.html = true;
info_mc.songtitle_txt.htmlText = trackNames[_global.songID];
var showInfo:Tween = new Tween(info_mc, “_alpha”, None.easeOut, 0, 100, 1, true);
playState = true;
mySong = new Sound();
mySong.loadSound(folder+file, true);
mySong.start(0);
mySong.onSoundComplete = playNextSong;
playpause_mc.gotoAndStop(2);
mySong.setVolume(Math.round((volumecontrols_mc.scrubber_mc._x / volumecontrols_mc.bar_mc._width) * 100));
}
function playNextSong() {
// Play next song
//delete main_mc.onEnterFrame;
if (_global.songID < trackFiles.length-1) {
_global.songID++;
} else {
_global.songID = 0;
}
startTheMusic(trackFiles[_global.songID]);
};
function startTracking() {
main_mc.onEnterFrame = function() {
findTime();
};
}
startTracking();
var currentTime:Number;
var songDuration:Number;
function findTime() {
currentTime = Math.round(mySong.position/1000);
songDuration = Math.round(mySong.duration/1000);
duration_mc.indicator_mc._x = mySong.position/mySong.duration*duration_mc.bar_mc._width;
var songMinutes:Number = Math.floor(songDuration/60);
var songSeconds:Number = songDuration%60;
statustext_mc.duration_txt.text = songMinutes+":"+songSeconds;
var songMinutesC:Number = Math.floor(currentTime/60);
var songSecondsC:Number = currentTime%60;
if (songSecondsC < 10) {
newSongSecondsC = "0"+songSecondsC;
} else {
newSongSecondsC = songSecondsC;
}
statustext_mc.position_txt.text = songMinutesC+":"+newSongSecondsC;
}
duration_mc.indicator_mc.onPress = function() {
delete main_mc.onEnterFrame;
startDrag(this, false, 0, 0, duration_mc.bar_mc._width, 0);
};
duration_mc.indicator_mc.onRelease = duration_mc.indicator_mc.onReleaseOutside = function() {
stopDrag();
mySong.start(((this._x / duration_mc.bar_mc._width) * mySong.duration)/1000);
startTracking();
};
function setVolume() {
mySong.setVolume(Math.round((volumecontrols_mc.scrubber_mc._x / volumecontrols_mc.bar_mc._width) * 100));
}
volumecontrols_mc.scrubber_mc.onPress = function() {
startDrag(this, false, 0, 0, volumecontrols_mc.bar_mc._width, 0);
main2_mc.onEnterFrame = setVolume;
};
volumecontrols_mc.scrubber_mc.onRelease = volumecontrols_mc.scrubber_mc.onReleaseOutside = function() {
stopDrag();
delete main2_mc.onEnterFrame;
};
stop_mc.onRollOver = function() {
var myTween:Tween = new Tween(stop_mc, “glow”, Regular.easeOut, 0, 5, 0.4, true);
myTween.onMotionChanged = function() {
stop_mc.filters = [new GlowFilter(0xFFFFFF, 1, stop_mc.glow, stop_mc.glow, 1, 2, false, false)];
};
};
stop_mc.onRollOut = stop_mc.onReleaseOutside = function() {
var myTween:Tween = new Tween(stop_mc, “glow”, Regular.easeOut, stop_mc.glow, 0, 0.4, true);
myTween.onMotionChanged = function() {
stop_mc.filters = [new GlowFilter(0xFFFFFF, 1, stop_mc.glow, stop_mc.glow, 1, 2, false, false)];
};
myTween.onMotionFinished = function() {
stop_mc.filters = null;
};
};
stop_mc.onRelease = function() {
mySong.start(0);
mySong.stop();
playState = false;
playpause_mc.gotoAndStop(1);
};
playpause_mc.onRollOver = function() {
var myTween:Tween = new Tween(playpause_mc, “glow”, Regular.easeOut, 0, 5, 0.4, true);
myTween.onMotionChanged = function() {
playpause_mc.filters = [new GlowFilter(0xFFFFFF, 1, playpause_mc.glow, playpause_mc.glow, 1, 2, false, false)];
};
};
playpause_mc.onRollOut = playpause_mc.onReleaseOutside = function() {
var myTween:Tween = new Tween(playpause_mc, “glow”, Regular.easeOut, playpause_mc.glow, 0, 0.4, true);
myTween.onMotionChanged = function() {
playpause_mc.filters = [new GlowFilter(0xFFFFFF, 1, playpause_mc.glow, playpause_mc.glow, 1, 2, false, false)];
};
myTween.onMotionFinished = function() {
playpause_mc.filters = null;
};
};
playpause_mc.onRelease = function() {
if (playState == true) {
mySong.stop();
playState = false;
playpause_mc.gotoAndStop(1);
} else {
mySong.start(mySong.position/1000);
playState = true;
playpause_mc.gotoAndStop(2);
}
};
bg_mc._alpha = 0;
tracklisting_mc._alpha = 0;
info_mc._alpha = 0;
playpause_mc._alpha = 0;
stop_mc._alpha = 0;
controls_mc._alpha = 0;
background_mc._alpha = 0;
duration_mc._alpha = 0;
statustext_mc._alpha = 0;
volumecontrols_mc._alpha = 0;
function intro() {
var anim1:Tween = new Tween(bg_mc, “_alpha”, None.easeOut, 0, 90, 0.7, true);
var anim2:Tween = new Tween(bg_mc, “_xscale”, Strong.easeInOut, 10, 100, 0.5, true);
var anim3:Tween = new Tween(bg_mc, “_yscale”, Strong.easeInOut, 10, 100, 0.5, true);
anim3.onMotionFinished = function() {
var anim4:Tween = new Tween(tracklisting_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
anim4.onMotionFinished = function() {
var anim5:Tween = new Tween(background_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
anim5.onMotionFinished = function() {
var anim5:Tween = new Tween(playpause_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
var anim6:Tween = new Tween(stop_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
var anim7:Tween = new Tween(controls_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
var anim7:Tween = new Tween(duration_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
var anim7:Tween = new Tween(statustext_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
var anim7:Tween = new Tween(volumecontrols_mc, “_alpha”, None.easeOut, 0, 100, 0.3, true);
};
};
}
}
intro();
Thanks
JJ