phetsims / twixt

Animation library for interactive HTML5 graphics
MIT License
1 stars 3 forks source link

problems with Animation.then #26

Open pixelzoom opened 5 years ago

pixelzoom commented 5 years ago

I ran into this in Gas Properties, where I'm working around it, but it's not pretty.

The API for Animation.then needs to be reexamined. Specifically:

@ariel-phet please prioritize and assign.

Slack conversation with @jonathanolson Chris Malley [2:12 PM] I have a Property that I want to animate from 0 to 1 to 0. How do I accomplish that with TWIXT/Animation? Jonathan Olson [2:20 PM] `new Animation( { from: 0, to: 1, property: someProperty, duration: } )` Chris Malley [2:20 PM] yes, that gets me from 0 -> 1. Jonathan Olson [2:20 PM] Oh sorry chain them so... Chris Malley [2:21 PM] const animation = `new Animation( { from: 0, to: 1, property: someProperty, duration: } ).then( { from: 1, to: 0, property: someProperty, duration: } )` returns the 2nd animation. Jonathan Olson [2:21 PM] zeroToOneAnimation.then( oneToZeroAnimation ), if you step both if you provide stepEmitter, that might be simpler? Chris Malley [2:21 PM] So `animation.start` does nothing. Jonathan Olson [2:22 PM] That is... unclean in the API sorry Chris Malley [2:22 PM] Indeed. Jonathan Olson [2:22 PM] so probably need to keep references, sorry and I should improve that thoughts on how things should be? Chris Malley [2:22 PM] But that’s the general idea then? Jonathan Olson [2:22 PM] yes Chris Malley [2:22 PM] Chaining doesn’t seem useful for `then` Jonathan Olson [2:23 PM] chaining should probably forward stepping or something more elaborate? Chris Malley [2:23 PM] I’m also wondering how I completely stop an Animation created with `new Animation(...).then`. If it gets to the `then` animation and I don’t have a reference to it, looks like I’m out of luck. (edited) Jonathan Olson [2:24 PM] in general it should be rethought, sorry Chris Malley [2:25 PM] OK. I’ll work around it. Should I capture this in an issue? Jonathan Olson [2:35 PM] yes please
ariel-phet commented 3 years ago

This issue has just not been a priority for the project. Deferring