Jump to content

Change animation's duration or frameRate


Recommended Posts


If I create animation this way:

myanim = scene.add.sprite('myanim');

    key: 'myanim',
    frames: scene.anims.generateFrameNumbers('myanim', { start: 0, end: 20 }),
    duration: 1000,
    hideOnComplete: true

.. and later I want to change it's duration or frameRate - how to do that?

I try this, but no luck:

myanim.anims.duration = 3000;
myanim.anims.frameRate = 15;
myanim.anims.currentAnim.duration = 3000;
myanim.anims.currentAnim.frameRate = 15;

Animation still runs with the initiall duration.

Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

??? ... ?

@samme @awbummer , exactly what i was looking for too ... for someone who hasn't been in bed with javascript for the last decade it's often not that obvious that most of the properties of anything can simply be set ... 

so to be more precise :

you start the animation first :



then you set the milliseconds :

this.sleepingguard.anims.msPerFrame  = 1600;

(the fun bit seems to be, the next time you play an anim it reverts back to the originally defined framerate) scrap that ...

(inmycase:) i had a slow frameRate of 8 for the walking anim ( = equals 125ms), so

- setsomevariable = this.sleepingguard.anims.msPerFrame; (or use registry)

- start the anim

this.sleepingguard.anims.msPerFrame  = 40; (gives you a 'standard' videoframerate of 25fps, but use whatever you need ofc.)

- when finished either with delayedcall or evencatcher set ...msPerFrame back to the stored value because it does not revert to the original setting from when you declared it, i also tried setting frameRate i.o. msPerFrame but that doesn't seem to work ..

a layman's version of the short explanation lol (or rank amateur if you like ...)

but yes, thats it msPerFrame




Link to comment
Share on other sites


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...