actionscript 3 - Progress bar in a Flash MP3 Player -
i have coded simple xml driven mp3 player. have used sound , soundchannel objects , method can´t find way of make progress bar.
i don´t need loading progress need song progress status bar.
canbd me?
thanks.
update:
theres code.
var musicreq: urlrequest; var thumbreq: urlrequest; var music:sound = new sound(); var sndc:soundchannel; var currentsnd:sound = music; var position:number; var currentindex:number = 0; var songpaused:boolean; var songstopped:boolean; var lineclr:uint; var changeclr:boolean; var xml:xml; var songlist:xmllist; var loader:urlloader = new urlloader(); loader.addeventlistener(event.complete, loaded); loader.load(new urlrequest("musiclist.xml")); var thumbhd:movieclip = new movieclip(); thumbhd.x = 50; thumbhd.y = 70; addchild(thumbhd); function loaded(e:event):void{ xml = new xml(e.target.data); songlist = xml.song; musicreq = new urlrequest(songlist[0].url); thumbreq = new urlrequest(songlist[0].thumb); music.load(musicreq); sndc = music.play(); title_txt.text = songlist[0].title + " - " + songlist[0].artist; loadthumb(); sndc.addeventlistener(event.sound_complete, nextsong); } function loadthumb():void{ var thumbloader:loader = new loader(); thumbreq = new urlrequest(songlist[currentindex].thumb); thumbloader.load(thumbreq); thumbloader.contentloaderinfo.addeventlistener(event.complete, thumbloaded); } function thumbloaded(e:event):void { var thumb:bitmap = (bitmap)(e.target.content); var holder:movieclip = thumbhd; holder.addchild(thumb); } prevbtn.addeventlistener(mouseevent.click, prevsong); nextbtn.addeventlistener(mouseevent.click, nextsong); playbtn.addeventlistener(mouseevent.click, playsong); function prevsong(e:event):void{ if(currentindex > 0){ currentindex--; } else{ currentindex = songlist.length() - 1; } var prevreq:urlrequest = new urlrequest(songlist[currentindex].url); var prevplay:sound = new sound(prevreq); sndc.stop(); title_txt.text = songlist[currentindex].title + " - " + songlist[currentindex].artist; sndc = prevplay.play(); currentsnd = prevplay; songpaused = false; loadthumb(); sndc.addeventlistener(event.sound_complete, nextsong); } function nextsong(e:event):void { if(currentindex
and here code lenght , position. it´s inside movieclip. that´s why use absolute path find sound object.
this.addeventlistener(event.enter_frame, movespeaker); var initwidth:number = this.spkcone.width; var initheight:number = this.spkcone.height; var rootobj:object = root; function movespeaker(eventargs:event) { var average:number = ((rootobj.audioplayer_mc.sndc.leftpeak + rootobj.audioplayer_mc.sndc.rightpeak) / 2) * 10; // trace(average); // trace(initwidth + ":" + initheight); trace(rootobj.audioplayer_mc.sndc.position + "/" + rootobj.audioplayer_mc.music.length); this.spkcone.width = initwidth + average; this.spkcone.height = initheight + average; }
you can normalized floating point value ( percent complete ) using: soundchannel.position / sound.length. can use value scalar sound playback progress indicator.
psuedo code:
// -- set x scale of progress bar percent complete progbar.scalex = channel.position / sound.length;
Comments
Post a Comment