{"id":93,"date":"2007-02-25T15:54:38","date_gmt":"2007-02-25T22:54:38","guid":{"rendered":"http:\/\/labs.zeh.com.br\/blog\/?p=93"},"modified":"2007-04-23T21:30:20","modified_gmt":"2007-04-24T04:30:20","slug":"introducing-caurinatransitionstweener","status":"publish","type":"post","link":"https:\/\/labs.zeh.com.br\/blog\/?p=93","title":{"rendered":"Introducing caurina.transitions.Tweener"},"content":{"rendered":"<p>In 2003, I was pretty pissed with the tweening extensions available at the time. I found them to be too clumsy and overly complex, requiring a lot of code just to create a single transition. I didn&#8217;t want to use 3+ lines just to change the way a button looked like when it was rolled over. After giving up on the task to find a simple extension based on Robert Penner&#8217;s equations, I decided to create such an extension for my own use. Called MC Tween, it was very straightforward; it didn&#8217;t create instances, didn&#8217;t allow you to rewind anything, nor did it allow you to create then fire animations separately. And in fact, it didn&#8217;t intend to; it just created a simple tweening, played it on the specified time, and called it a day.<\/p>\n<p>To my surprise, it quickly got bigger than I expected when everybody started using it at my workplace, and then when it became the most popular prototype on good old <a href=\"http:\/\/proto.layer51.com\/d.aspx?f=804\">proto.layer51.com<\/a> with no &#8220;marketing&#8221; whatsoever. It didn&#8217;t even have any documentation, all I used to say was &#8220;look at the source code, the methods are there&#8221;. MC Tween evolved a lot on the following years, getting <a href=\"http:\/\/hosted.zeh.com.br\/mctween\/\">a small website of its own<\/a> (one with proper documentation!), and getting really popular with some folks. I still receive email about it almost everyday, and I like to believe it was the first of its kind &#8211; using simple code to create tweenings in a fast and straightforward way, inspiring designers and programmers alike to stop using the timeline and adopting code-based tweening almost exclusively.<\/p>\n<p>With that said, well, I have something to confess&#8230;: I haven&#8217;t been using MC Tween for more than one year, including on all my <a href=\"http:\/\/www.zeh.com.br\">commercial<\/a> work.<\/p>\n<p><!--more-->The reason is, I&#8217;ve been slowing developing a new tweening <em>thing<\/em>. Now, instead of a collection of prototypes that extend the existing classes by way of AS1 code and AS2 hacks, it&#8217;s a real static class, working the same way on both AS2 and AS3. And while it still follows the concept of simple, one-line tweenings, it&#8217;s has a slightly different syntax. It&#8217;s called <em>caurina.transitions.Tweener<\/em>, or just <em><strong>Tweener<\/strong><\/em>.<\/p>\n<p>Now, to be honest, there&#8217;s still a bit left to go for Tweener to have as many features as MC Tween has. For example, Tweener doesn&#8217;t have native filter tweening, as we&#8217;re still deciding on the best syntax approach. However, at the same time, there&#8217;s a lot of positive things about Tweener, and because of this, I feel it&#8217;s about time Tweener is publicly announced. So there it is. I don&#8217;t work with MC Tween anymore, and I won&#8217;t change it anymore. It was a good extension, and it still is, but I have thought a lot about code-based tweening for the past 4 years and I have reached the conclusion that there&#8217;s a slightly better approach; that&#8217;s what I think Tweener is.<\/p>\n<p>Did you notice I said &#8220;<em>we&#8217;re still deciding on the best approach<\/em>&#8221; above? Yeah, it&#8217;s because Tweener is more like a group affort, differently from MC Tween, which was mostly a one-man job, taking suggestions from here and there. Currently, Tweener is being helped by Nate Chatellier, who wrote the original AS3 version and has been providing valuable input on both versions, and Arthur Debert, which has helped with submitting bugs and fixes as well as suggestions on how stuff should work.<\/p>\n<p>Anyhow, there&#8217;s a lot I could say here but I would probably just be repeating myself. So if you&#8217;re interested, Tweener is available for anyone who wants to test it. Its official page is <a href=\"http:\/\/code.google.com\/p\/tweener\/\">hosted at Google Code<\/a>. You can download <a href=\"http:\/\/code.google.com\/p\/tweener\/downloads\/list\">the stable version<\/a>, or download the latest versions, available from <a href=\"http:\/\/code.google.com\/p\/tweener\/source\">Subversion<\/a>, or from the <a href=\"http:\/\/tweener.googlecode.com\/svn\/trunk\/\">web version of the repository<\/a>. You can also check the <a href=\"http:\/\/code.google.com\/p\/tweener\/wiki\/Changelog\">changelog<\/a>. And if you want to see it in action, there&#8217;s a few <a href=\"http:\/\/tweener.googlecode.com\/svn\/trunk\/examples\/\">examples<\/a> available; this time, I&#8217;m trying to make examples as distinct as possible, covering as many different development setups as possible. Right now, there are examples available for AS2 under Flash 8 and MTASC, AS3 under Flash 9, and Flash Lite 2 under Flash 8, but I expect to add more as time allows.<\/p>\n<p>The <a href=\"http:\/\/code.google.com\/p\/tweener\/wiki\/Documentation\">documentation<\/a> is still being written but there&#8217;s plenty of content already. If you&#8217;re a MC Tween (or similar) user, you can check the <a href=\"http:\/\/code.google.com\/p\/tweener\/wiki\/DifferencesBetweenMCTweenAndTweener\">differences between MC Tween and Tweener<\/a> &#8211; it explains the new class in depth and also has a few bits on the rationale behind most of the changes.<\/p>\n<p>And finally, there&#8217;s a <a href=\"http:\/\/lists.caurinauebi.com\/listinfo.cgi\/tweener-caurinauebi.com\">discussion list<\/a> for generic Tweener discussion (in english).<\/p>\n<p>Wew. It feels good to finally get that off my chest. So there.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In 2003, I was pretty pissed with the tweening extensions available at the time. I found them to be too clumsy and overly complex, requiring a lot of code just to create a single transition. I didn&#8217;t want to use 3+ lines just to change the way a button looked like when it was rolled [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17,10,2,6,11,18],"tags":[],"_links":{"self":[{"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/93"}],"collection":[{"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=93"}],"version-history":[{"count":0,"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/93\/revisions"}],"wp:attachment":[{"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=93"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=93"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labs.zeh.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}