webForumDet fria alternativet

Jag har en countdown och jag har tre problem.

Flash

1 svar · 325 visningar · startad av saturday

Medlem sedan jan. 2007133 inlägg
Frågan#1

Hej igen!

Jag sitter på två problem. Jag har lyckats knopa ihop ett script till en countdown(nedräkning) som ser ut så här:

this.onEnterFrame = function(){
	var today:Date = new Date();
	var currentYear = today.getFullYear();
	var currentTime = today.getTime();

	//Target date
	var targetDate:Date = new Date(2008,5-1,22);
	
	var targetTime = targetDate.getTime();
	var timeLeft = targetTime - currentTime;
	var sec = Math.floor(timeLeft/1000)
	var min = Math.floor(sec/60)
	var hours = Math.floor(min/60)
	var days = Math.floor(hours/24)
	
	sec = String(sec % 60)
	if (sec.length < 2) {
		sec = "0" + sec
	}
	
	min = String(min % 60)
	if (min.length < 2) {
		min = "0" + min
	}
	
	hours = String(hours % 24)
	if (hours.length < 2) {	
		hours = "0" + hours
	}
	
	days = String(days)
	if (days.length = 2) {	
		days = "0" + days
	} else if (days.length = 1) {	
		days = "00" + days
	} else if (days.length = 0) {	
		days = "000"
	}

	sec_txt.text = sec;
	min_txt.text = min;
	hours_txt.text = hours;
	days_txt.text = days;
}
stop();

Problem 1:
Även fast days är 0, dvs mindre än 24 timmar till måldatumet, så skrivs inte "000" ut utan bara "00".

Problem 2:
Detta är kanske det jobbigaste problemet. Jag vill att när days, hours, min och sec står på noll (000:00:00:00) så ska filmen hoppa till frame 2. Jag har prövat allt min fantasi kan komma på men hur jag än gör får jag det att bugga ur. Någon som kan hjälpa mig att få till ett event på noll-slaget?

Medlem sedan jan. 2007133 inlägg
#2

Löste det själv via annan hjälp. Postar det fungerande scriptet nedan:

stop();
this.onEnterFrame = function(){
	var today:Date = new Date();
	var currentYear = today.getFullYear();
	var currentTime = today.getTime();

	//Target date
	var targetDate:Date = new Date(2008,5-1,12);
	
	var targetTime = targetDate.getTime();
	var timeLeft = targetTime - currentTime;
	var sec = Math.floor(timeLeft/1000)
	var min = Math.floor(sec/60)
	var hours = Math.floor(min/60)
	var days = Math.floor(hours/24)
	
	//Checks if zero point is passed
	if (days <= -1) { 
	 gotoAndStop(2);
	}
	
	sec = String(sec % 60)
	if (sec.length < 2) {
		sec = "0" + sec
	}
	
	min = String(min % 60)
	if (min.length < 2) {
		min = "0" + min
	}
	
	hours = String(hours % 24)
	if (hours.length < 2) {	
		hours = "0" + hours
	}
	
	days = String(days)
	if (days.length == 2) {	
		days = "0" + days
	} else if (days.length == 1) {	
		days = "00" + days
	} else if (days.length == 0) {	
		days = "000"
	}

	sec_txt.text = sec;
	min_txt.text = min;
	hours_txt.text = hours;
	days_txt.text = days;
}
265 ms totalt · 4 externa anrop · v20260731065814-full.868a69e5
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)