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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.