Timer problems
hey guys,
i'm having trouble timer. have slideshow 5 images , numbered buttons go each separately, previous/next buttons, random image button, , play , pause buttons. here's code have it. , i've been trying slideshow start automatically pause button instead of paused play button. i've tried adding playtimer.start(); @ beginning, seems mess rest of buttons. suggestions/ideas? (i'm including code responsible timer, play , pause buttons , next button reference rest of buttons have.
stop();
//variables
var playtimer:timer = new timer(2000);
var totalnumberpictures:int = 5;
//set, start , listen timer when play button clicked
play_btn.addeventlistener(mouseevent.click, starttimer);
function starttimer(myevent:mouseevent):void
{
//when reaches 2s, execute function "playslideshow"
playtimer.addeventlistener(timerevent.timer, playslideshow);
//start timer
playtimer.start();
//hide play button , show pause button
play_btn.visible = false;
pause_btn.visible = true;
}
//go next image (and loop if last)
function playslideshow(myevent:timerevent):void
{
if (currentframe >= totalnumberpictures)
{
gotoandstop("img1");
}
else
{
this.nextframe();
}
}
//this function resets timer
function resettimer():void
{
if(playtimer != null)
{
playtimer.reset();
playtimer.start();
}
}
//pause button function remove timer
pause_btn.addeventlistener(mouseevent.click, pauseslideshow);
function pauseslideshow(myevent:mouseevent):void
{
playtimer.stop();
playtimer.removeeventlistener(timerevent.timer, playslideshow);
//hide pause button , show play button
pause_btn.visible = false;
play_btn.visible = true;
}
//next button function go next image
next_btn.addeventlistener(mouseevent.click, gotonextpage);
function gotonextpage(myevent:mouseevent):void
{
if (currentframe >= totalnumberpictures)
{
//loop first image last image
gotoandstop("img1");
resettimer();
}
else
{
this.nextframe();
resettimer();
}
}
the main problem re-instantiate time every time first frame hit.
try this:
import flash.events.mouseevent; import flash.events.timerevent; import flash.utils.timer; stop(); //variables var playtimer:timer; var totalnumberpictures:int = 5; var isplaying:boolean = false; if (!playtimer) { init(); } function init():void { playtimer = new timer(2000); play_btn.addeventlistener(mouseevent.click, starttimer); pause_btn.addeventlistener(mouseevent.click, pauseslideshow); next_btn.addeventlistener(mouseevent.click, gotonextpage); } function starttimer(e:mouseevent):void { //when reaches 2s, execute function "playslideshow" playtimer.addeventlistener(timerevent.timer, playslideshow); //start timer playtimer.start(); //hide play button , show pause button play_btn.visible = false; pause_btn.visible = true; } function playslideshow(myevent:timerevent):void { isplaying = true; if (currentframe >= totalnumberpictures) { gotoandstop("img1"); } else { this.nextframe(); } } function pauseslideshow(e:mouseevent):void { isplaying = false; playtimer.removeeventlistener(timerevent.timer, playslideshow); playtimer.stop(); //hide pause button , show play button pause_btn.visible = false; play_btn.visible = true; } function gotonextpage(e:mouseevent):void { if (currentframe >= totalnumberpictures) { //loop first image last image gotoandstop("img1"); } else { this.nextframe(); } if (isplaying) { playtimer.reset(); playtimer.start(); } }
message edited by: andrei1
More discussions in ActionScript 3
adobe
Comments
Post a Comment