[flash] Problem z odliczaniem

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
Fistach
Przelotem
Przelotem
Posty: 348
Rejestracja: sob maja 03, 2003 7:50 pm
Lokalizacja: Wroclaw

[flash] Problem z odliczaniem

Post autor: Fistach »

Mam odliczanie dnia, i godziny do podanej daty i coś niewłaściwie przelicza. Moze ktoś skuma dlaczego. Oto kod :

Kod: Zaznacz cały

now = new Date();
left = new Date();
then = new Date(2005, 4, 8, 21, 00); // wszystko liczbami
left.setTime(then.getTime()-now.getTime());
//s = "Pozostało "+left.getDate()+" dni, "+left.getHours()+" godzin i "+left.getMinutes()+" minut.";
dni = left.getDate();
dni1 = (dni-Math.Round(dni/10));
// tutaj mozesz dac to co ci sie podoba na poczatek tekstu wystarczy zamienic "Pozostało", pamietaj o gramtyce
if (dni == 1) {
	s = " 1 dzień, ";
} else if (((dni<10)||(dni>20)) &&(dni1>1) && (dni1<5)) {
	s = "Next Bans za: " + dni +" dni ";
} else {
	s = "Next Bans za: " +dni+" dni ";
}
godz = left.getHours();
goddz1 = (godz-Math.Round(godz/10));
if (godz == 1) {
	s += "godzina i ";
} else if (((godz<10)||(godz>20)) &&(goddz1>1) && (goddz1<5)) {
		s += godz+"h ";
} else {
	s += godz+"h ";
}
min = left.getMinutes();
min1 = (min-Math.Round(min/10));
if (min == 1) {
	s += "1 minuta ";
} else if (((min<10)||(min>20)) &&(min1>1) && (min1<5)) {
	s += min+"min";
} else {
	s += min+"min";
}
//tutaj zamiast kropki mozesz dac co ci sie podoba (pamietaj o spacji przed tekstem)
s += ".";
counter2.t
ext = s;
//trace(s);
Pzd
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

odliczanie daty pozostało pozostały czas

Post autor: Marek_bf »

Nie wiem, co jest tam źle, bo prawdę mówiąc nie chce mi się sprawdzać, trochę bałaganisz w kodzie :)

Nie prościej?:

Kod: Zaznacz cały

Date.prototype.odliczanieDaty = function() {
	var dat = this - new Date();
	var sek = Math.floor(dat / 1000);
	var min = Math.floor(sek / 60);
	var god = Math.floor(min / 60);
	var dni = Math.floor(god / 24);
	var pozostalo = "Pozostało: ";
	pozostalo += dni + " d, ";
	pozostalo += (god % 24) + " g, ";
	pozostalo += (min % 24) + " m i ";
	pozostalo += (sek % 24) + " s.";
	return pozostalo;
};
this.createTextField("data_txt", 0, 10, 10, 200, 20);
var odlicz = new Date(2007, 3, 1, 11, 30);
function zliczaj() {
	data_txt.text = odlicz.odliczanieDaty();
}
var intervalID = setInterval(zliczaj, 200); 
Pamiętaj też, że miesiąc zliczany jest od 0 (Styczeń) więc zapis new Date(2007, 3, 1, 11, 30); faktycznie wskazuje na Kwiecień nie Marzec
Fistach
Przelotem
Przelotem
Posty: 348
Rejestracja: sob maja 03, 2003 7:50 pm
Lokalizacja: Wroclaw

Re: [flash] Problem z odliczaniem

Post autor: Fistach »

Dzieki , smiga jak szalone :D
tweakman
Posty: 12
Rejestracja: ndz lut 25, 2007 2:40 pm

Re: [flash] Problem z odliczaniem

Post autor: tweakman »

A w jaki sposob zmienic formatowanie tego czasu odliczania?

format = new TextFormat

ustalenie formatowania,
a nastepnie przypisanie go do danego pola txtowego nie dziala,
ew, czy mozna ten skrypt przypisac do dynamicznego pola textowego?
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: [flash] Problem z odliczaniem

Post autor: Marek_bf »

Najprościej będzie jeśli usuniesz z kodu tę linie:

Kod: Zaznacz cały

this.createTextField("data_txt", 0, 10, 10, 200, 20);
Wstawisz sobie na scenę dynamiczne pole tekstowe i w polu instance name nadasz mu nazwę data_txt
Fistach
Przelotem
Przelotem
Posty: 348
Rejestracja: sob maja 03, 2003 7:50 pm
Lokalizacja: Wroclaw

Re: [flash] Problem z odliczaniem

Post autor: Fistach »

a jak zapbokować zeby po dotarciu do danej daty miał oo:oo:oo lub załkiem znikał?
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: [flash] Problem z odliczaniem

Post autor: Marek_bf »

Przecież funkcja zwraca łańcuch znaków porównaj go z innym i na tej podstawie steruj całością.
ODPOWIEDZ