How do you make an automatic seekbar/scrubber?
hi there,
have made own functional mp3 media player in actionscript 3.0 can play song, , have seekbar/scrubber can scrub through song.
the question asking have searched many forums , on google, how can make seekbar/scrubber move song automatically.
any appreciated, casey
// variable list
var my_songs:xmllist; // create variable reference xml nodes in playlist
var my_total:number; // create variable hold number of songs in playlist
var my_sound:sound; // create variable hold sound object
var my_channel:soundchannel; // create variable hold sound channel object
var dragging:boolean = false; // boolean detect state of vol slider drag
var isdragging:boolean = true; // boolean detect state of scrubber/seekbar
var rectangle:rectangle = new rectangle(0,-75,0,75); // place vol slider objects
var rectangle2:rectangle = new rectangle(0,0,685.5,0);
var current_song:number = 0; // current song counter (first position in array)
var song_position:number; // song position
var song_paused:boolean; // song paused? true or false?
var myxmlloader:urlloader = new urlloader(); // variable hold urlloader class
var pauseposition:int=0;
// seekbar ui controls setup
seekbar_mc.sliderseek_mc.buttonmode = true;
seekbar_mc.sliderseek_mc.addeventlistener(mouseevent.mouse_down, dragit2); // call drag function
stage.addeventlistener(mouseevent.mouse_up, dropit2); // call drop function
// function dragit2
// dragging slider
function dragit2(e:event):void
{
e.currenttarget.startdrag(true, rectangle2); // seek bar of rectangle constrained
isdragging = true; // flip boolean value true (dragging)
seekbar_mc.sliderseek_mc.addeventlistener(event.enter_frame, onplayprogress); // call onplayprogress function
}
// function dropit2
// dropping slider
function dropit2(e:event):void
{
if (song_paused == false)
{
if (isdragging == true)
{
stopdrag();
var fulltime:int = math.floor(my_sound.length/1000);
//my_sound.length:int = math.ceil(my_sound.length /(my_sound.bytesloaded / my_sound.bytestotal));
var newpos:number = fulltime/685.5 * math.floor(seekbar_mc.sliderseek_mc.x * 1000);
pauseposition = newpos/2;
my_channel.stop();
gotoandplay(2);
my_channel = my_sound.play(newpos);
song_paused = false;
isdragging = false;
}
}else
{
isdragging = false;
seekbar_mc.sliderseek_mc.stopdrag();
//seekbar_mc.sliderseek_mc.visible = false;
//pauseposition = _totaltime / 100 * math.floor(seekbar_mc.sliderseek.mc.x * 1000);
}
}
// onplayprogress
function onplayprogress(event:event):void
{
var seekbar:number = seekbar_mc.sliderseek_mc.x / 100;
}
create loop (eg, enterframe) , repeatedly use soundchannel's position property update play indicator.
More discussions in ActionScript 3
adobe
Comments
Post a Comment