I am using Flash Professional CS5 and the Advanced Photo Album template (New/Templates/Media Playback/Advanced Photo Album).
I have the album working but whenever the next or previous button are pressed, the timer does not reset. The timer is set to 5s, if I press the next button when there is 2.5s left on the timer the next image only displays for 2.5s.
I am a novice to Flash and Actionscript 3 but I cannot find anything that deals with this issue, only generic information on how to use the timer class reset. Any help on how to get the damn timer to reset without ripping apart the whole code would be hugely appreciated.
import fl.data.DataProvider;
import fl.events.ListEvent;
import fl.transitions.*;
import fl.controls.*;
// USER CONFIG SETTINGS =====
var secondsDelay:Number = 20;
var autoStart:Boolean = true;
var transitionOn:Boolean = true; // true, false
var transitionType:String = "Fade"; // Blinds, Fade, Fly, Iris, Photo, PixelDissolve, Rotate, Squeeze, Wipe, Zoom, Random
var hardcodedXML:String="<photos><image title='Rank Badges'>image1.png</image><image title='How It Works'>image2.png</image><image title='First Steps'>image3.png</image><image title='Brain Crank'>image4.png</image><image title='Natural Friendship'>image5.png</image><image title='Fire Hazard'>image6.png</image><image title='I Got This'>image7.png</image><image title='Magic Act'>image8.png</image><image title='Replay'>image9.png</image><image title='Samaritan'>image10.png</image><image title='No Tag Backs'>image11.png</image></photos>";
// END USER CONFIG SETTINGS
// DECLARE VARIABLES AND OBJECTS =====
var imageList:XML = new XML();
var currentImageID:Number = 0;
var imageDP:DataProvider = new DataProvider();
var slideshowTimer:Timer = new Timer((secondsDelay*1000), 0);
// END DECLARATIONS
// CODE FOR HARDCODED XML =====
imageList = XML(hardcodedXML);
fl_parseImageXML(imageList);
// END CODE FOR HARDCODED XML
// EVENTS =====
imageTiles.addEventListener(ListEvent.ITEM_CLICK, fl_tileClickHandler);
function fl_tileClickHandler(evt:ListEvent):void
{
imageHolder.imageLoader.source = evt.item.source;
currentImageID = evt.item.imgID;
}
playPauseToggle_mc.addEventListener(MouseEvent.CLICK, fl_togglePlayPause);
function fl_togglePlayPause(evt:MouseEvent):void
{
if(playPauseToggle_mc.currentLabel == "play")
{
fl_startSlideShow();
playPauseToggle_mc.gotoAndStop("pause");
}
else if(playPauseToggle_mc.currentLabel == "pause")
{
fl_pauseSlideShow();
playPauseToggle_mc.gotoAndStop("play");
}
}
next_btn.addEventListener(MouseEvent.CLICK, fl_nextButtonClick);
prev_btn.addEventListener(MouseEvent.CLICK, fl_prevButtonClick);
function fl_nextButtonClick(evt:MouseEvent):void
{
fl_nextSlide();
}
function fl_prevButtonClick(evt:MouseEvent):void
{
fl_prevSlide();
}
slideshowTimer.addEventListener(TimerEvent.TIMER, fl_slideShowNext);
function fl_slideShowNext(evt:TimerEvent):void
{
fl_nextSlide();
}
// END EVENTS
// FUNCTIONS AND LOGIC =====
function fl_parseImageXML(imageXML:XML):void
{
var imagesNodes:XMLList = imageXML.children();
for(var i in imagesNodes)
{
var imgURL:String = imagesNodes[i];
var imgTitle:String = imagesNodes[i].attribute("title");
imageDP.addItem({label:imgTitle, source:imgURL, imgID:i});
}
imageTiles.dataProvider = imageDP;
imageHolder.imageLoader.source = imageDP.getItemAt(currentImageID).source;
title_txt.text = imageDP.getItemAt(currentImageID).label;
}
function fl_startSlideShow():void
{
slideshowTimer.start();
}
function fl_pauseSlideShow():void
{
slideshowTimer.stop();
}
function fl_nextSlide():void
{
currentImageID++;
if(currentImageID >= imageDP.length)
{
currentImageID = 0;
}
if(transitionOn == true)
{
fl_doTransition();
}
imageHolder.imageLoader.source = imageDP.getItemAt(currentImageID).source;
title_txt.text = imageDP.getItemAt(currentImageID).label;
}
function fl_prevSlide():void
{
currentImageID--;
if(currentImageID < 0)
{
currentImageID = imageDP.length-1;
}
if(transitionOn == true)
{
fl_doTransition();
}
imageHolder.imageLoader.source = imageDP.getItemAt(currentImageID).source;
title_txt.text = imageDP.getItemAt(currentImageID).label;
}
function fl_doTransition():void
{
if(transitionType == "Blinds")
{
TransitionManager.start(imageHolder, {type:Blinds, direction:Transition.IN, duration:1});
} else if (transitionType == "Fade")
{
TransitionManager.start(imageHolder, {type:Fade, direction:Transition.IN, duration:1});
} else if (transitionType == "Fly")
{
TransitionManager.start(imageHolder, {type:Fly, direction:Transition.IN, duration:1});
} else if (transitionType == "Iris")
{
TransitionManager.start(imageHolder, {type:Iris, direction:Transition.IN, duration:1});
} else if (transitionType == "Photo")
{
TransitionManager.start(imageHolder, {type:Photo, direction:Transition.IN, duration:1});
} else if (transitionType == "PixelDissolve")
{
TransitionManager.start(imageHolder, {type:PixelDissolve, direction:Transition.IN, duration:1});
} else if (transitionType == "Rotate")
{
TransitionManager.start(imageHolder, {type:Rotate, direction:Transition.IN, duration:1});
} else if (transitionType == "Squeeze")
{
TransitionManager.start(imageHolder, {type:Squeeze, direction:Transition.IN, duration:1});
} else if (transitionType == "Wipe")
{
TransitionManager.start(imageHolder, {type:Wipe, direction:Transition.IN, duration:1});
} else if (transitionType == "Zoom")
{
TransitionManager.start(imageHolder, {type:Zoom, direction:Transition.IN, duration:1});
} else if (transitionType == "Random")
{
var randomNumber:Number = Math.round(Math.random()*9) + 1;
switch (randomNumber) {
case 1:
TransitionManager.start(imageHolder, {type:Blinds, direction:Transition.IN, duration:0.25});
break;
case 2:
TransitionManager.start(imageHolder, {type:Fade, direction:Transition.IN, duration:1});
break;
case 3:
TransitionManager.start(imageHolder, {type:Fly, direction:Transition.IN, duration:0.25});
break;
case 4:
TransitionManager.start(imageHolder, {type:Iris, direction:Transition.IN, duration:0.25});
break;
case 5:
TransitionManager.start(imageHolder, {type:Photo, direction:Transition.IN, duration:0.25});
break;
case 6:
TransitionManager.start(imageHolder, {type:PixelDissolve, direction:Transition.IN, duration:0.25});
break;
case 7:
TransitionManager.start(imageHolder, {type:Rotate, direction:Transition.IN, duration:0.25});
break;
case 8:
TransitionManager.start(imageHolder, {type:Squeeze, direction:Transition.IN, duration:0.25});
break;
case 9:
TransitionManager.start(imageHolder, {type:Wipe, direction:Transition.IN, duration:0.25});
break;
case 10:
TransitionManager.start(imageHolder, {type:Zoom, direction:Transition.IN, duration:0.25});
break;
}
} else
{
trace("error - transitionType not recognized");
}
}
if(autoStart == true)
{
fl_startSlideShow();
playPauseToggle_mc.gotoAndStop("pause");
}
// END FUNCTIONS AND LOGIC