Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-07-2006, 08:29   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 25
Countdown Genauigkeit

Hellas.

Ich werde einen Countdown bauen. Sehr ähnlich dem, den ich hier anhängen werde. Ich würde sogar sagen sehr ähnlich.

Weil der allerdings einen Countdown von mehreren Wochen durcharbeiten wird, sorge ich mich ein bisschen um die Genauigkeit. Sprich: Kann ich drauf gehen, dass der dann wirklich auf die gewünschte Sekunde bei Null steht, oder gibts Aussetzer o.ä.

Hat da jemand Erfahrung oder eine fachmännische Meinung?

Thänks. +
Gruss
Angehängte Dateien
Dateityp: zip Countdown.zip (17,8 KB, 56x aufgerufen)
Matthieu ist offline   Mit Zitat antworten
Alt 14-07-2006, 08:32   #2 (permalink)
Flash...
 
Benutzerbild von Scheidlf
 
Registriert seit: Dec 2005
Ort: Österreich
Beiträge: 961
joah müsste so ziemlich genau sein, hab mir die datei nicht angesehen.
Wenn du aber die Zeit mit new Date() blablabla holst,
kann derr User einfach seine Systemzeit ändern und schwupss Countdown ist bei 0.
Mit PHP kannst du die Serverzeit holen..
die müsstest du dann mit Flash einlesen...

Geändert von Scheidlf (14-07-2006 um 08:39 Uhr)
Scheidlf ist offline   Mit Zitat antworten
Alt 14-07-2006, 08:33   #3 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Lol, sorry, aber die Frage ist lustig. Du gehst davon aus, dass du auf
"Go" klickst und dann ein echter Countdown in der Datei gestartet
wird

Das ganze orientiert sich an der Systemzeit des Users und wenn du
die Datei ein zweites mal aufrufst, ist der Countdown auch weg
Und für andere User sowieso nicht der gleiche. (Vorrausgesetzt du
nimmst genau diese Datei usw.)

Oder willst du das Ding dauerhaft auf einer Messe o.ä. laufen lassen?

lg

Geändert von sebastian (14-07-2006 um 08:38 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 14-07-2006, 09:25   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 25
Genau. Die Applikation wird nur auf einem Computer laufen.
Von daher ist die Systemzeit dieses Computers absolut ausreichend.

Aber eben. Einzig die Genauigkeit ist hier die Frage.
Und vielleicht hat ja jemadn schon so einen Countdown über mehrere Wochen laufen lassen und Probleme oder eben auch keine erlebt...?
Matthieu ist offline   Mit Zitat antworten
Alt 14-07-2006, 09:27   #5 (permalink)
Flash...
 
Benutzerbild von Scheidlf
 
Registriert seit: Dec 2005
Ort: Österreich
Beiträge: 961
Wird diese Flash anwendung mehrere Wochen durchgehend laufen?
Scheidlf ist offline   Mit Zitat antworten
Alt 14-07-2006, 09:31   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Es gibt nur Ungenauigkeiten, wenn deine Systemzeit ungenau ist,
ansonsten keine Probleme
sebastian ist offline   Mit Zitat antworten
Alt 14-07-2006, 09:58   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 25
@Scheidlf

das wäre eigentlich das Ziel...
Matthieu ist offline   Mit Zitat antworten
Alt 02-04-2007, 16:22   #8 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 152
naja der monatsübersprung funzt leider auch nicht!
__________________
Seien wir realistisch, versuchen wir das Unmögliche.
tasovi ist offline   Mit Zitat antworten
Alt 02-04-2007, 18:01   #9 (permalink)
relayit.de
 
Registriert seit: Sep 2001
Beiträge: 427
warum machst dus dir so schwer?
in der datumsberechnung nutzt man fast immer die millisekunden seit dem 1.1.1970. jedes Datum hat also einen fixen Wert an X vergangenen millisekunden seit 1970. wenn du nun zwei Daten in Millisekunden hast und die Differenz daraus bildest, hast du die Anzahl von Millisekunden, die zwischen diesen beiden Daten liegt.

Flash unterstuetzt das natuerlich. Der Rückgabewert von Date ist naemlich genau dieser Wert: Millisekunden seit 1970. insofern kannst du Date1 - Date2 schreiben und bekommst als Ergebnis die Zeit dazwischen zurueck. Diese Zeit nutzt du, um dein Darstellungsobjekt (der Countdown) zu updaten mittels setTime().

Code:
_root.zero = new Date(2007,11,10,23,20,0,0);
_root.count = new Date(0,0,0);

_root.onEnterFrame = function(){
	var current:Date = new Date();
	_root.count.setTime(_root.zero - current);
}
zero ist das Datum, zu dem du counten willst.
count ist das Datum, was dargestellt werden soll.
Und in der onEnterFrame-funktion wird count staendig aktualisiert, indem ich das aktuelle Datum (current) von dem Enddatum (zero) abziehe und tadaaaa, ich hab die Anzahl der Millisekunden zwischen den beiden Daten.
count ist natuerlich weiterhin ein Datumsobjekt, d.h. du kannst Tage, Jahre, etc. voneinander getrennt auslesen, und das auf die millisekunde genau.

oder hab ich die frage missverstanden?

Edit: aussetzer sollte es keine geben (jedenfalls nicht bis 2038), da dieser zeitstempel sozusagen die basis fuer fast alle Datumssachen ist
vgl.: http://de.wikipedia.org/wiki/Unixzeit
__________________
hmmm.....

Geändert von japanitrat (02-04-2007 um 18:25 Uhr)
japanitrat ist offline   Mit Zitat antworten
Alt 18-04-2007, 18:08   #10 (permalink)
Neuer User
 
Registriert seit: Dec 2003
Beiträge: 152
Zitat:
Zitat von japanitrat Beitrag anzeigen

Code:
_root.zero = new Date(2007,11,10,23,20,0,0);
_root.count = new Date(0,0,0);

_root.onEnterFrame = function(){
	var current:Date = new Date();
	_root.count.setTime(_root.zero - current);
}
Werden da auch die Tage die ein Monat hat berücksichtigt?
z.B. der Februar hat nur 28 Tage. Wenn ich mit deinem Skript, vom 2.Februar bis zum 1.März zähle, spuckt er mit 30 Resttage aus.

Wie kann man das vermeiden?
__________________
Seien wir realistisch, versuchen wir das Unmögliche.
tasovi ist offline   Mit Zitat antworten
Alt 20-04-2007, 17:04   #11 (permalink)
relayit.de
 
Registriert seit: Sep 2001
Beiträge: 427
echt? bei mir nicht.
hast du daran gedacht, dass das Date-Objekt Monate von 0 (Januar) bis 11 (Dezember) zählt, anstatt von 1 bis 12?
Code:
_root.zero = new Date(2007,2,1,23,20,0,0); //1. März
_root.from = new Date(2007,1,2,23,20,0,0); //2. Feb

trace(new Date(zero-from));
gibt mir 28 Tage und eine Stunde aus (wegen GMT +0100 auf meinem Rechner)
__________________
hmmm.....

Geändert von japanitrat (20-04-2007 um 17:08 Uhr)
japanitrat ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele