25. juni 2008 - 09:43Der er
3 kommentarer og 1 løsning
Er countdown overskredet?
Hej. Jeg har fundet dette script på nettet, som laver en nedtælling til en bestemt dato/klokkeslæt: --- --- --- var goalDate = new Date(2008, 6, 1, 16, 0, 0); // function dateDif(date1, date2){ var span = Math.abs(date1.valueOf() - date2.valueOf()); var days = Math.floor(span/86400000); var hours = Math.floor((span%86400000)/3600000); var minutes = Math.floor((span%3600000)/60000); var seconds = Math.floor((span%60000)/1000); return {dx:spanx, d:days, h:hours, m:minutes, s:seconds}; } //
myTextFormat = new TextFormat(); myTextFormat.bold = true; myTextFormat.font = "Myriad Pro"; myTextFormat.color = 0x000000; myTextFormat.size=16; // createTextField("Fred", 10, 25, 255, 500, 50); onEnterFrame = function(){ var now = new Date(); var dd = dateDif(now, goalDate);
Fred.setTextFormat(myTextFormat); } --- --- --- Problemet er: Når nedtællingen er overskredet, begynder uret at tælle opad. Dette har sandsynligvis noget med Math.abs() at gøre.
Spørgsmål: Hvordan kan jeg gøre, så teksten ændrer sig når nedtællingen er overskredet? Det jeg egentlig skal er, at finde ud af hvornår tallet er negativt / tæller opad.
Jeg var ude i noget med at lave: var spanx = Math(date1.valueOf() - date2.valueOf()); og så return {dx:spanx (...) (deraf dx:spanx i det oprindelige spørgsmål)
Og så senere tjekke om dd.dx>0, men det virkede ikke..
Jeg er ikke lige ekspert i ActionScript, men du kan sikkert tilpasse det hvis jeg laver fejl.
Det er netop abs der laver ged i den, fordi den fjerner fortegnet. I stedet skal du trække den aktuelle dato fra målet (rækkefølgen er altså vigtig!), og se om resultatet er større end 0 - hvis ikke, returnerer du din egen besked i stedet.
Dvs. at i stedet for linjen: var span = Math.abs(date1.valueOf() - date2.valueOf());
skal du bruge noget i stil med dette var span = date2.valueOf() - date1.valueOf(); if (span <= 0) return "Så er tiden gået"
Hey - Mange tak for det hurtige reply. Jeg fik rodet lidt med det, og nu virker det:
var goalDate = new Date(2008, 6, 1, 16, 0, 0); // function dateDif(date1, date2){ var span = Math.abs(date1.valueOf() - date2.valueOf()); var days = Math.floor(span/86400000); var hours = Math.floor((span%86400000)/3600000); var minutes = Math.floor((span%3600000)/60000); var seconds = Math.floor((span%60000)/1000); return {d:days, h:hours, m:minutes, s:seconds}; } //
myTextFormat = new TextFormat(); myTextFormat.bold = true; myTextFormat.font = "Myriad Pro"; myTextFormat.color = 0x000000; myTextFormat.size=16; // createTextField("Fred", 10, 25, 255, 500, 50); onEnterFrame = function(){ var now = new Date(); var dd = dateDif(now, goalDate);
var spanchk = now.valueOf() - goalDate.valueOf(); if (spanchk <= 0){
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.