basically I have written a function:
function animation(){ setTimeout( function(){ requestAnimationFrame(animation); if (player.currentFrame == player.frames) { player.currentFrame = 0; } else { player.currentFrame++; } } , 1000 / 15); }
and I'm trying to call it with this code
animation(fps);
I tried making it like this:
function animation(fps){ setTimeout( function(){ requestAnimationFrame(animation); if (player.currentFrame == player.frames) { player.currentFrame = 0; } else { player.currentFrame++; } } , 1000 / fps); }
and tried to call it with animation(30)
but it didn't work. I tried search topic like this but non of them is excatly what I want.
Any help would be appreciated! :)
basically I have written a function:
function animation(){ setTimeout( function(){ requestAnimationFrame(animation); if (player.currentFrame == player.frames) { player.currentFrame = 0; } else { player.currentFrame++; } } , 1000 / 15); }
and I'm trying to call it with this code
animation(fps);
I tried making it like this:
function animation(fps){ setTimeout( function(){ requestAnimationFrame(animation); if (player.currentFrame == player.frames) { player.currentFrame = 0; } else { player.currentFrame++; } } , 1000 / fps); }
and tried to call it with animation(30)
but it didn't work. I tried search topic like this but non of them is excatly what I want.
Any help would be appreciated! :)
Share Improve this question asked Apr 4, 2013 at 12:13 NucleusNucleus 3972 gold badges7 silver badges18 bronze badges2 Answers
Reset to default 2Did you tried this syntax
function animation(fbs){
requestAnimationFrame(animation);
if (player.currentFrame == player.frames) {
player.currentFrame = 0;
} else {
player.currentFrame++;
}
setTimeout(function(){animation(fbs) }, 1000 / fbs);
}
I changed the code from setTimeout('animation(fbs)', 1000 / fbs);
to setTimeout(function(){animation(fbs) }, 1000 / fbs);
setTimeout
will only call the function once after the time has elapsed, so unless you call animation
again with fps
, it will simply run once and be done. You could use setInterval
to call the function every 1000/fps
milliseconds.
var frame = 0;
animation(20);
function animation(fps){
console.log(fps)
setInterval(
function(){
console.log("A");
document.getElementById("sp1").innerHTML = frame;
frame++;
}
, 1000 / fps);
}
Sample fiddle: http://jsfiddle/Up4Cq/
Or if you want to use setTimeout, you need to call the animation
function again:
function animation(fps){
console.log(fps)
setTimeout(
function(){
console.log("A");
document.getElementById("sp1").innerHTML = frame;
frame++;
animation(fps);
}
, 1000 / fps);
}
Here is the fiddle for setTimeout: http://jsfiddle/Up4Cq/1/