Hey guys i am a newbie in action script 3 this is my code can anyone help me figure out how i can get it to reset back to the original starting set time each round or level.
this is my variables
private var seconds:int = 60;
private var minutes:int = 10;
private var myTimer:Timer = new Timer(10);
private var secString = "00";
private var minString = Number(minutes);
this is the levels information i am grabbing to display.
private var levels:Array = [
["01", "25", "50", "No Ante", "25", "50", "100", "500", "1000"],
["02", "50", "100", "No Ante", "25", "50", "100", "500", "1000"],
["03", "75", "150", "No Ante", "25", "50", "100", "500", "1000"],
["04", "100", "200", "No Ante", "25", "50", "100", "500", "1000"],
["05", "150", "300", "No Ante", "25", "50", "100", "500", "1000"],
["06", "200", "400", "No Ante", "25", "50", "100", "500", "1000"],
["07", "250", "500", "No Ante", "25", "50", "100", "500", "1000"],
["08", "300", "600", "No Ante", "100", "500", "1000", "5000", "10000"],
["09", "400", "800", "No Ante", "100", "500", "1000", "5000", "10000"],
["10", "500", "1000", "100", "100", "500", "1000", "5000", "10000"],
["11", "600", "1200", "200", "100", "500", "1000", "5000", "10000"],
["12", "700", "1400", "300", "100", "500", "1000", "5000", "10000"],
["13", "800", "1600", "400", "100", "500", "1000", "5000", "10000"],
["14", "900", "1800", "500", "500", "1000", "5000", "10000", "25000"],
["15", "1000", "2000", "1000", "500", "1000", "5000", "10000", "25000"],
["16", "3000", "6000", "2000", "500", "1000", "5000", "10000", "25000"],
["17", "5000", "10000", "5000", "500", "1000", "5000", "10000", "25000"]
];
this is my levels or round for each level the timer needs to be reset back to the starting time and countdown
private var levelindex:int = 0;
this is my timer functions with is not working well
private function countTimer(e:TimerEvent):void {
if (seconds > 60) {
} else {
seconds--;
// minus one minus every 59 sec
if (seconds == 59) {
minutes--;
}
secString = String(seconds);
minString = String(minutes);
// sec under 10 gets a 0 in front
if (seconds < 10) {
secString = String("0" + seconds);
}
// minutes under 10 gets a zero in front like 00:09
if (minutes < 10) {
minString = String("0" + minutes);
}
// reset seconds back to 60
if (seconds == 0 && minutes >= 1) {
seconds = 60;
if (minutes == 0) {
minuteStored = minutes;
nextRound();
}
}
if (seconds == 0 && minutes == 0) {
if (levelindex == 17) {
trace("Game Over")
myTimer.stop();
}
trace("Round Over now reset and move to next round")
minuteStored = minutes;
nextRound()
}
}
// this is to convert it to a string text
master.pages.timerMc.timerTextMc.goldTextMask.numberField.text = minString + ":" + secString;
}
Often I'll use a CountdownTimer class that extends Timer.
This timer can be instantiated by specifying total time and interval in milliseconds.
For example, to countdown from 5-minutes at 1-second intervals:
var countdownTimer:CountdownTimer = new CountdownTimer(5 * 60 * 1000, 1000);
At the start of each level, instantiate a new countdown timer for the desired total time:
protected function startLevel():void
{
countdownTimer = new CountdownTimer(5 * 1000 * 60);
countdownTimer.addEventListener(TimerEvent.TIMER, timerHandler);
countdownTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);
countdownTimer.start();
}
On each timer event, obtain the remaining time applying your formatting:
protected function timerHandler(event:TimerEvent):void
{
var minutes:int = countdownTimer.time / 60000;
var seconds:int = (countdownTimer.time / 1000) % 60;
trace((minutes < 10 ? "0" + minutes.toString() : minutes.toString()) + ":" +
(seconds < 10 ? "0" + seconds.toString() : seconds.toString()));
}
When the timer counts down to zero, use the TimerEvent.TIMER_COMPLETE
handler:
protected function timerCompleteHandler(event:TimerEvent):void
{
trace("time's up!");
}
At the end of your level, reset the timer:
protected function endLevel():void
{
countdownTimer.removeEventListener(TimerEvent.TIMER, timerHandler);
countdownTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);
countdownTimer.reset();
}
CountdownTimer class implementation:
package
{
import flash.events.TimerEvent;
import flash.utils.Timer;
public class CountdownTimer extends Timer
{
public var time:Number = 0;
public function CountdownTimer(time:Number=Number.NEGATIVE_INFINITY, delay:Number=1000)
{
super(delay, repeatCount);
if (isNaN(time))
this.time = 0;
else
this.time = time;
repeatCount = Math.ceil(time / delay);
}
override public function start():void
{
super.start();
addEventListener(TimerEvent.TIMER, timerHandler);
addEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);
}
protected function timerHandler(event:TimerEvent):void
{
time -= delay;
}
protected function timerCompleteHandler(event:TimerEvent):void
{
}
override public function stop():void
{
super.stop();
removeEventListener(TimerEvent.TIMER, timerHandler);
removeEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteHandler);
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.