mc spielt nicht ab, mc springt!

Hallo nochmal!
Du hast natürlich recht!
Der Code geht wunderbar, nur nicht so wie ich es eigentlich haben wollte....
bei "if (csec == 0)" spielt der mc nur wenn ich bei den Sekunden 0 habe
Ich wollte das der mc abgespielt wird wenn die sekunden 10, 20, 30, 40, 50, und 0 sind.
darum habe ich auch dies hier eingebaut:
Code:
test = new String(sek);
test1 = test.charAt(1);

aber dann sollte es doch auch so laufen können, oder?

Code:
test = new String(sek);
test1 = test.charAt(1);
testfeld = test1;
if (lsec == undefined) {
	lsec = test1;
}
if (lsec != test1) {
	if (test1 == 0) {
		mc_sec1.gotoAndPlay(49);
	}
}
 
Hi,

Code:
csec = int(sek / 10); // durch 10 teilen und Nachkommateil abschneiden
	if (lsec == undefined) lsec = csec;
	if (lsec != csec) {
	...

Mit Strings und charAt zu arbeiten, ist hier unnötig. ;)

Gruß
.
 
ok! besten Dank!
aber das spiel wiederholt sich dann bei 10, 11, 12..... dann im kommenden mc mc_sec2 (und auch mc_min1, mc_min2, mc_std1, mc_std2, mc_tag1, mc_tag2)
Also noch viel vor.... ;)
darum habe ich mit Strings gearbeitet!
Meinst du ich sollte jetzt Strings total vergessen und den Rest auch einfach teilen?
 
Ah so. ^^

Ja, in dem Fall kann man schon mal auf Strings zurückgreifen - achte aber darauf, dass Du bei Werten unter 10 nicht falsche Werte erhältst, sprich: füge führende Nullen an:
Code:
var secstr = sekunden.toString();
if (secstr.length < 2) secstr = "0" + secstr;
var zehner = parseInt(secstr.charAt(0), 10);
var einer = parseInt(secstr.charAt(1), 10);

Gruß
.
 
Er springt noch immer!
Ich glaube fast ich bin schon zu müde um den Fehler im Code zu finden....

Hier nochmal mein ganzer Code:
Code:
function initCountd() {
	jahr = 2006;
	monat = 6;
	tag = 9;
	stunde = 18;
	cDatum = new Date(jahr, monat-1, tag, stunde+1);
}
function countd() {
	heute = new Date();
	sommerzeit = new Date(2006, 2, 26, 2);
	i = 0;
	if (heute<sommerzeit) {
		i = 1;
	}
	diffSek = Math.floor((cDatum-heute)/1000);
	sek = diffSek%60;
	diffMin = Math.floor(diffSek/60);
	min = diffMin%60;
	diffStd = Math.floor(diffMin/60);
	std = diffStd%24;
	tage = Math.floor(diffStd/24);
	if (sek<10) {
		sek = "0"+sek;
	}
	if (min<10) {
		min = "0"+min;
	}
	if (std<10) {
		std = "0"+std;
	}
	var secstr = sek.toString();
	var secstr1 = secstr.charAt(1);
	test = secstr1;
	if (lsec == undefined) {
		lsec = sek;
	}
	if (lsec != sek) {
		if (secstr1 == 0) {
			mc_sec1.gotoAndPlay(49);
		}
		if (secstr1 == 9) {
			mc_sec1.gotoAndPlay(55);
		}
		if (secstr1 == 8) {
			mc_sec1.gotoAndPlay(1);
		}
		if (secstr1 == 7) {
			mc_sec1.gotoAndPlay(7);
		}
		if (secstr1 == 6) {
			mc_sec1.gotoAndPlay(13);
		}
		if (secstr1 == 5) {
			mc_sec1.gotoAndPlay(19);
		}
		if (secstr1 == 4) {
			mc_sec1.gotoAndPlay(25);
		}
		if (secstr1 == 3) {
			mc_sec1.gotoAndPlay(31);
		}
		if (secstr1 == 2) {
			mc_sec1.gotoAndPlay(37);
		}
		if (secstr1 == 1) {
			mc_sec1.gotoAndPlay(43);
		}
	}
}
_root.initCountd();
 
Wofür soll "test" dort gut sein? in "sek" hast Du nun die Sekunden als String mit führenden Nullen. Was soll dann noch das "sek.toString();" ? Und was willst Du mit "secstr1" anfangen (das wären dann die "Einer" als String)? Diese Vergleiche:
Code:
secstr1 == 0
sind in dem Fall auch nicht korrekt, da Du einen String mit einem numerischen Wert vergleichst.

Zudem: Meinen vorherigen Vorschlag, nur die Zehnerwerte zu verwenden, hast Du in diesem Beispiel nirgendwo umgesetzt: Du springst jede Sekunde in den Block und nimmst nicht die Zehner, sondern die Einer (secstr1) als Werte für die Sprünge ...

Gruß
.
 

Neue Beiträge

Zurück