Avatar billede kalleballe Nybegynder
04. august 2005 - 13:32 Der er 5 kommentarer og
1 løsning

cleare et interval helt

Jeg har et problem med setInterval.

Jeg har følgende:

run_the_game = setInterval (move_monsters, game_speed);

og senere så clearInterval(run_the_game)

det virker fint, - problemet er at hvis jeg så siger

run_the_game = setInterval (move_monsters, game_speed);

igen og laver en trace(run_the_game) så kan jeg se et tal der stiger jo flere gange jeg laver

run_the_game = setInterval (move_monsters, game_speed);

Er det ikke lidt underligt at jeg ikke kan få slettet run_the_game 100 procent??

vh

KalleBalle
Avatar billede barklund Nybegynder
04. august 2005 - 15:00 #1
run_the_game er ikke et interval. run_the_game er bare en variabel, der indeholder et tal. Du kan ikke slette tallet (eller det kan du godt, men det er har intet med intervallet at gøre).

Intervaller foregår internt i playeren - playeren giver dig bare nummeret for intervallet (som er fortløbende uafhængigt af, hvem der kalder dem, hvilken funktion de refererer til eller hvor tallet gemmes henne).

Dette nummer kan du så bruge til at få playeren til at fjerne intervallet igen.

Sammenlign det med at du bestiller en pizza nede hos pizzamanden. Du får et nummer (nummer syv-og-halv-firs). Hvis du bestiller den samme pizza en gang til så får du et nyt nummer (nummer otte-og-halv-firs). Det betyder jo ikke, at den første pizza er afbestilt. Og hvis du har smidt det første nummer væk, så vil den første pizza stadig blive lavet - du kan ikke stoppe det, da du kun kan stoppe produktionen (intervallet) hvis du stadig har nummeret.

Kort og godt. Din variabel er bare et nummer - det er ikke intervallet.

--
Morten Barklund
Avatar billede kalleballe Nybegynder
04. august 2005 - 16:42 #2
Ok, - tak :)
Så når jeg siger clearInterval(run_the_game) så får jeg stoppet min produktion af pizza og jeg vil ikke ende med at skulle betale for 3+ pizzaer?
Avatar billede barklund Nybegynder
04. august 2005 - 18:10 #3
Hvis du skriver:

run_the_game = setInterval (move_monsters, game_speed);
run_the_game = setInterval (move_monsters, game_speed);
clearInterval(run_the_game);

Så har du jo stadig et interval kørende (en udestående bestilling) - og da du ikke kender nummeret på den, kan du ikke annullere den.

:)

--
Morten Barklund
Avatar billede kalleballe Nybegynder
04. august 2005 - 18:32 #4
men

run_the_game = setInterval (move_monsters, game_speed);
clearInterval(run_the_game);
run_the_game = setInterval (move_monsters, game_speed);
clearInterval(run_the_game);

er ok?

vh

KalleBalle
Avatar billede barklund Nybegynder
04. august 2005 - 19:05 #5
Ja selvfølgelig - det er fuldstændig ligegyldigt, om du gemmer din reference til et interval i en variabel, der har været brugt til noget andet før. Man kan bruge bruget variabler - meget genbrugsorienteret :)
Avatar billede kalleballe Nybegynder
19. december 2006 - 14:34 #6
luk
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