kurhlaa Posted August 12, 2018 Share Posted August 12, 2018 Hi, If I create animation this way: myanim = scene.add.sprite('myanim'); scene.anims.create({ 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. awbummer 1 Link to comment Share on other sites More sharing options...
kurhlaa Posted August 12, 2018 Author Share Posted August 12, 2018 If Phaser 3 currently doesn't support it - it's also an acceptable answer at least I haven't found yet Link to comment Share on other sites More sharing options...
awbummer Posted October 31, 2018 Share Posted October 31, 2018 I'm also trying to solve this riddle. How does one go about updating an animation's frame rate after instantiation? As @kurhlaa mentioned, overwriting the likely values doesn't do the trick. Link to comment Share on other sites More sharing options...
samme Posted October 31, 2018 Share Posted October 31, 2018 sprite.anims.msPerFrame = n; awbummer 1 Link to comment Share on other sites More sharing options...
awbummer Posted October 31, 2018 Share Posted October 31, 2018 @samme Thank you!! Link to comment Share on other sites More sharing options...
rudyardcatling Posted February 3, 2020 Share Posted February 3, 2020 ??? ... ? @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 : (inmycase:) this.sleepingguard.anims.play('sg_wr',true); 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 More sharing options...
Recommended Posts