Avatar billede heidimueller Nybegynder
29. september 2004 - 18:09 Der er 5 kommentarer og
1 løsning

Ur som går fra et klokkeslet til aktuel tid

Jeg har brug for hjælp til følgende opgave:

Et ur som ved brugerens indgang til siden viser 12.00..og derefter bevæger sig hen til den aktuelle tid brugeren går ind på siden...Uret skal derefter fortsætte med at gå.

Jeg har koden på uret, hvor det viser den aktuelle tid og fortsætter:

_root.onEnterFrame = function() {
// create an instance of the Date object
myDate = new Date();
//
// rotate clock Hands and shadows
hourHand._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
hourHandShadow._rotation =
myDate.getHours()*30+(myDate.getMinutes()/2);
minuteHand._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
minuteHandShadow._rotation =
myDate.getMinutes()*6+(myDate.getSeconds()/10);
secondHand._rotation = myDate.getSeconds()*6;
secondHandShadow._rotation = myDate.getSeconds()*6;
dato = myDate.getDate();
};

Her er et link til et eksempel på, hvordan det skal virke:

www.breitling.com
Avatar billede rohaje Nybegynder
29. september 2004 - 20:19 #1
er ikke testet men prøv,, du kan jo ihvertfald se ide'en

//flash kode til frame actioen:

function rigtigTid() {
    // create an instance of the Date object
    myDate = new Date();
    //
    // rotate clock Hands and shadows
    hourHand._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
    hourHandShadow._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
    minuteHand._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    minuteHandShadow._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    secondHand._rotation = myDate.getSeconds()*6;
    secondHandShadow._rotation = myDate.getSeconds()*6;
    dato = myDate.getDate();
}
//hour
timen = 0;
minutet = 0;
sekundet = 0;
speed = 0.2;
function tilRigtigTid() {
    myDate = new Date();
    timeRota = myDate.getHours()*30+(myDate.getMinutes()/2);
    minutRota = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    secundRota = myDate.getSeconds()*6;
    timeDif = timeRota-timen;
    if (timeDif<0) {
        timeDif += 360;
    }
    minutDif = minutRota-minutet;
    if (minutDif<0) {
        minutDif += 360;
    }
    secundDif = secundRota-sekundet;
    if (secundDif<0) {
        secundDif += 360;
    }
    timen += timeDif*speed;
    minutet += minutDif*speed;
    sekundet += secundDif*speed;
    hourHand._rotation = hourHandShadow._rotation=timen;
    minuteHand._rotation = minuteHandShadow._rotation=minutet;
    secondHand._rotation = secondHandShadow._rotation=sekundet;
    if(Math.round(timeDif)==0&&Math.round(minutDif)&&Math.round(secundDif)){
        onEnterFrame=rigtigTid;
    }
}
onEnterFrame=tilRigtigTid;

// flash slut
Avatar billede heidimueller Nybegynder
29. september 2004 - 23:30 #2
Tusind tak for hjælpen...Det virker!..
Avatar billede rohaje Nybegynder
29. september 2004 - 23:59 #3
arrhh,,, det virker ikke helt,, har lige haft tid til at prøve koden,, den her er bedre, den bevæger sig federe når tiden indstilles og den stopper "tidsindtillingen" og overgår til din oprindelige ur-kode, når viserne er på plads,, brug denne her istedet  :

//flash kode:

function rigtigTid() {
    // create an instance of the Date object
    myDate = new Date();
    //
    // rotate clock Hands and shadows
    hourHand._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
    hourHandShadow._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
    minuteHand._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    minuteHandShadow._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    secondHand._rotation = myDate.getSeconds()*6;
    secondHandShadow._rotation = myDate.getSeconds()*6;
    dato = myDate.getDate();
}

timen = 0;
minutet = 0;
sekundet = 0;
speed = 0.01;
function tilRigtigTid() {
    myDate = new Date();
    timeRota = myDate.getHours()*30+(myDate.getMinutes()/2);
    minutRota = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    secundRota = myDate.getSeconds()*6;
    timeDif = timeRota-timen;
    minutDif = minutRota-minutet;
    secundDif = secundRota-sekundet;
    if (timeDif<0) {
        timeDif += 360;
    }
   
    if (minutDif<0) {
        minutDif += 360;
    }
   
    if (secundDif<0) {
        secundDif += 360;
    }
   
    timen += timeDif*speed;
    minutet += minutDif*speed;
    sekundet += secundDif*speed;
    speed*=1.1;
    hourHand._rotation = hourHandShadow._rotation=timen;
    minuteHand._rotation = minuteHandShadow._rotation=minutet;
    secondHand._rotation = secondHandShadow._rotation=sekundet;
    if(Math.round(timeDif)==0&&Math.round(minutDif)==0&&Math.round(secundDif)==0){
        trace("normTid");
        onEnterFrame=rigtigTid;
    }
}
onEnterFrame=tilRigtigTid;
//flash kode slut
Avatar billede rohaje Nybegynder
30. september 2004 - 00:17 #4
endnu bedre uden en onEnterFrame men med interval ( det vil sige uret opdateres kun en gang i sec. istedet for (din frame) gange i sec. sparer cpu til andre ting:

function rigtigTid() {
    // create an instance of the Date object
    myDate = new Date();
    //
    // rotate clock Hands and shadows
    hourHand._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
    hourHandShadow._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
    minuteHand._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    minuteHandShadow._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    secondHand._rotation = myDate.getSeconds()*6;
    secondHandShadow._rotation = myDate.getSeconds()*6;
    dato = myDate.getDate();
}
//hour
timen = 0;
minutet = 0;
sekundet = 0;
speed = 0.01;
function tilRigtigTid() {
    myDate = new Date();
    timeRota = myDate.getHours()*30+(myDate.getMinutes()/2);
    minutRota = myDate.getMinutes()*6+(myDate.getSeconds()/10);
    secundRota = myDate.getSeconds()*6;
    timeDif = timeRota-timen;
    minutDif = minutRota-minutet;
    secundDif = secundRota-sekundet;
    if (timeDif<0) {
        timeDif += 360;
    }
   
    if (minutDif<0) {
        minutDif += 360;
    }
   
    if (secundDif<0) {
        secundDif += 360;
    }
   
    timen += timeDif*speed;
    minutet += minutDif*speed;
    sekundet += secundDif*speed;
    speed*=1.1;
    hourHand._rotation = hourHandShadow._rotation=timen;
    minuteHand._rotation = minuteHandShadow._rotation=minutet;
    secondHand._rotation = secondHandShadow._rotation=sekundet;
    if(Math.round(timeDif)==0&&Math.round(minutDif)==0&&Math.round(secundDif)==0){
        trace("normTid");
        onEnterFrame=false;
         
        ingenEnterFrame();
    }
}
function ingenEnterFrame() {
  rigtigTid();
    clearInterval(interval);
    interval = setInterval(ingenEnterFrame, 1000);
}

onEnterFrame=tilRigtigTid;
Avatar billede heidimueller Nybegynder
30. september 2004 - 00:18 #5
Du har ret!...Tak endnu engang!..:-)
Avatar billede rohaje Nybegynder
30. september 2004 - 00:22 #6
Det var så lidt
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester