AS3 Animation System v2.1
For quite some time now, I have been using the naming conventions that we made while I was working at EA. Since we carried some of the C++ standards over, method names and getter/setters began with uppercase letters. I was also naming interfaces with ‘_I’ on the end instead of starting with an ‘I’ because it kept them in alphabetical order.
Well tonight, I decided it was time to refactor my entire AS3 library to adhere to the normal AS standards. Method names and getter/setters now begin with lowercase letters and interface names begin with an ‘I’. Four hours and two monster energy drinks later, version 2.1 is ready to go. I also fixed a minor bug and made a few other small changes while I was at it. It’s all detailed in the change log, so make sure and have a quick look at that before creating some baller animations.
I apologize to everyone who just downloaded version 2.0 and started integrating it into projects. It shouldn’t take long at all to migrate over to this latest version. It is definitely worth it in the long run.
Download ‘boostworthy_animation_v2_1.zip’
The original post has been updated as well. Since this was quite a massive update, if you come across any bugs or mistakes in the documentation, please let me know.
Thanks and enjoy!
12 comments12 Comments so far
Leave a reply

Good decision
Thanks man!
I hate to admit it, but the uppercase method names were a real road block for me, despite the fact that I prefer your interface over all the other packages I’ve checked out. I actually thought for a moment about renaming them myself before using the code; it irked me that much! But I concede that I’m overly sensitive to such things. I’m very glad that you decided to take it upon yourself.
Kudos and thanks. I’m seriously considering this system for future projects.
Thanks, I’m really glad I did as well. I can’t stress enough how much I regret having used those standards for so long; bad bad bad. I’m glad it’s all fixed now though. Lesson learned.
is this a bug?
onStart and onFinish traces the x and y values of my sprite. onFinish traces the right values, but onStart traces x=54.7 y=90 even though my sprite started at x=50 =90. Playing the animation backwards also ends up at x=54.7 y=90. It is visually noticeable because the square won't look crisp because the x is not on a whole pixel.
UPDATE:
I figured out why, I was starting the the x at frame 0, when it should've been 1
while I'm here.. is the above usage correct? thank you.
Miguel,
Thanks for bringing that small issue with using frame number '0' to my attention. Your code above looks fine except for the fact that your finish event listener is titled 'onStart' and the start listener is titled 'onFinish'. Is that a mistake or did you have a reason for doing that?
oh, didn't realized they were flipped
... i was just testing your animation system so both functions do the same, which is to trace the x and y values of the sprite being animated.
this is what we like to call the legendary sub-sectored convolution metric, the epitome of parsed singularities which only emerge in the furthest reaches of the neurally transmitted nodes of introspection. the quadentially expanded mode of subthought.
0720670827406728701859287983786798276007369248756203875096208756092475682375067204589672049876.
LOL... ohhh the memories...
Hi - can you add a simple method of delaying a tween in the next version? Ta muchly.
Biffer
Hi Ryan,
thanks for this excellent piece of work. I'm currently working on a online 3D modeling application. This will include an animation part. For now I just did some testing on implementing popular animation systems (GoASAP, tweener, KitchenSync) and most of them did not cover my needs. After some work with your animation system I'm really happy. The "virtual" Timeline is absolutely brilliant and I love it.
I just wanted to know if your project is still in development or is it frozen?
Currently I did some own extensions on your source.
Erik Lembke
Erik,
Thanks, I really appreciate that. The project is basically frozen at the moment due to the fact that I have been super busy since last Fall. As soon as things slow back down for me, I have plans to do some pretty major updates to the system. I'd love to hear more about the extensions you have been working on; shoot me an email when you have a spare moment and fill me in.