Sokszor felmerül az igény a késleltetésre egy banner elkészítése során. Ezt egyszerűen meg tudjuk oldani egy setInterval és egy clearInterval függvény használatával. Roppant egyszerű függvények mégis nagyon hasznosak!
Lássuk hát, hogy is működik:
Használata:
1 | setInterval(functionName, interval [, param1, param2, ..., paramN]) |
Paraméterei:
functionName A meghívandó függvény neve, vagy akár itt is deklarálhatjuk a függvényt.
interval A függvény meghívásának az ideje milisecundumban.
param1, param2, …, paramN Opcionális paramétereke melyeket a függvényünk kap meg.
Példák:
Példa 1:
Egy névtelen függvény meghívása 1000 milisecundumonként.
1 | setInterval( function(){ trace("interval hívás "); }, 1000 ); |
Példa 2:
Két függvényt hívunk meg az első egy sima meghívás a második paraméterátadással, történik ugyanez. Az „interval hívás” az Output panelen minden 1000-dik milisececundumonkén megjelenik.
1 2 3 4 5 6 7 8 9 10 | function callback1() { trace("interval hívás”) } function callback2(arg) { trace(arg); } setInterval( callback1, 1000 ); setInterval( callback2, 1000, "interval hívás" ); |
Példa 3:
Ha csak késleltetésre akarjuk használni a setInterval függvényünket akkor változóba definiáljuk majd a meghívott függvény belsejébe elhelyezzük a clearInterval( változó név ) függvényt. Ezzel megszüntetjük a további futtatását. Egy if szerkezettel és egy számlálóval ezt lehet korlátozni bármekkora lefutásra.
1 2 3 4 5 6 | function callback1() { trace("interval hívás”); clearInterval(intervalID) } intervalID=setInterval( callback1, 1000 ); |
Természetesen a clearInterval bárhol elhelyezhető.
Forrás: Dodder.hu
Sziasztok!
Sajnos ezt a Interval-t nem nagyon értem, ezért megkérhetek valakit arra hogy ennek segítségével írjon nekem valak egy visszaszálmlálót? Nem találtam a gugliban csak olyat ami dátum alapján számol vissza! Olyanra gondoltam, hogy van egy id-m, aminek a tartalma egy szám (pl.:100), és azt csökkentse másodpercenként 1-el! Ha eléri a 0-át, akkor törlődjön, ne menjen minusba!
Ha megtudnátok nekem írni, azt nagyon megköszönném!
Csabi:
Hello,
Mit nem értesz?
A setInterval AS2-ben elég fontos szerepet tölt be. Bár sokan az EnterFrame-t használják inkább. AS3-ban már nincsen setInterval mert leváltotta a Timer.
Amit szerettél volna az kb így néz ki (bár ha nem érted akkos nem sok hasznod lesz belőle):
var szam=100 //az induló paraméterünk
function callback1() {
szam-=1 //csökknetjük az értéket eggyel
trace("Jelen értékünk: "+szam);
if (szam==0){ //ha a számunk 0 akkor
clearInterval(intervalID) // töröljük az időzített meghívást
}
}
intervalID=setInterval( callback1, 1000 );