<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-6843566830671277353</id><updated>2009-07-13T06:39:18.160-07:00</updated><title type='text'>Codedependent</title><subtitle type='html'>"I'm not a real evangelist - I just play one on Adobe TV"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default?start-index=26&amp;max-results=25'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-6502087552234843890</id><published>2009-07-10T14:46:00.000-07:00</published><updated>2009-07-10T14:57:22.418-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video: Stretch and Squash in Flex 4</title><content type='html'>&lt;p&gt;&lt;a href="http://tv.adobe.com/#vi+f16095v1010"&gt;Stretch and Squash in Flex 4&lt;/a&gt;, the next and episode in the gripping and suspenseful series &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent&lt;/a&gt;, is now available from &lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;This show is a continuation of the episode (can you guess?) &lt;a href="http://graphics-geek.blogspot.com/2009/06/video-stretch-squash.html"&gt;Stretch and Squash in Flex 3&lt;/a&gt;, in which we saw how to use Flex 3 to create deforming bouncing effects for more life-like motion with Flex 3. This time, we'll see how the same effects can be created in Flex 4 (with less code!).&lt;/p&gt;
&lt;p&gt;Here's the video:&lt;/p&gt;
&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9jb2RlZGVwZW5kZW50LzEzOV9jb2RfMDExLmZsdj9yc3NfZmVlZGlkPTE2MDk1JnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/vi+f16095v1010&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;
&lt;p&gt;Here is the demo application:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/StretchSquashF4.swf" type="application/x-shockwave-flash" height="400" width="300"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is the &lt;a href="http://graphicsgeek1.googlepages.com/StretchSquashF4.zip"&gt;source code&lt;/a&gt;. Note that the code has changed to match the current APIs (we had some class/package/namespace renames along the way - Flex 4 is still in Beta, after all...).&lt;/p&gt;
&lt;p&gt;Have a (squashy) ball.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-6502087552234843890?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/6502087552234843890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=6502087552234843890' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/6502087552234843890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/6502087552234843890'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/07/video-stretch-and-squash-in-flex-4.html' title='Video: Stretch and Squash in Flex 4'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-8371649350000167132</id><published>2009-06-26T09:35:00.000-07:00</published><updated>2009-07-10T10:36:50.656-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video: Stretch &amp; Squash</title><content type='html'>&lt;p&gt;&lt;a href="http://tv.adobe.com/#vi+f16095v1009"&gt;Stretch &amp;amp; Squash in Flex 3&lt;/a&gt;, the next episode in &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent&lt;/a&gt; series, is now available from &lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;This show is a continuation of the episode &lt;a href="http://graphics-geek.blogspot.com/2009/06/video-bouncing-ball-behavior.html"&gt;Bouncing Ball Behavior&lt;/a&gt;, in which we saw how to use easing functions in Flex 3 to add bouncing motion to a bal in Flex 3. This time, we'll see how to apply some techniques from traditional cartoon animation to make the bouncing ball seem more lifelike.&lt;/p&gt;
&lt;p&gt;Here's the video:&lt;/p&gt;
&lt;embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9jb2RlZGVwZW5kZW50LzEzOV9jb2RfMDEwLmZsdj9yc3NfZmVlZGlkPTE2MDk1JnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/vi+f16095v1009&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;
&lt;p&gt;Here is the demo application:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/StretchSquashF3.swf" type="application/x-shockwave-flash" height="400" width="300"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is the &lt;a href="http://graphicsgeek1.googlepages.com/StretchSquashF3.zip"&gt;source code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Have a (stretchy) ball.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-8371649350000167132?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/8371649350000167132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=8371649350000167132' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8371649350000167132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8371649350000167132'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/video-stretch-squash.html' title='Video: Stretch &amp; Squash'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-8765513495413540835</id><published>2009-06-19T16:39:00.000-07:00</published><updated>2009-06-19T16:43:06.056-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video:  Bouncing Ball Behavior</title><content type='html'>&lt;p&gt;&lt;a href="http://tv.adobe.com/#vi+f16095v1008"&gt;Bouncing Ball Behavior&lt;/a&gt;, the next and bountifully alliterative episode in the gripping and suspenseful series &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent&lt;/a&gt;, is now available from &lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;This show is a continuation of the episode &lt;a href="http://graphics-geek.blogspot.com/2009/06/video-easing-does-it.html"&gt;Easing Does It&lt;/a&gt;, in which we saw how to use easing functions in Flex 3 to create different kinds of motion. This time, we'll see how to use what we now know about easing functions to add bouncing behavior to our ball using Flex 3.&lt;/p&gt;
&lt;p&gt;Here's the video:&lt;/p&gt;
&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9jb2RlZGVwZW5kZW50LzEzOV9jb2RfMDA5LmZsdj9yc3NfZmVlZGlkPTE2MDk1JnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/vi+f16095v1008&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;
&lt;p&gt;Here is the demo application:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/BouncingBallF3.swf" type="application/x-shockwave-flash" height="400" width="300"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is the &lt;a href="http://graphicsgeek1.googlepages.com/BouncingBallF3.zip"&gt;source code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Have a ball.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-8765513495413540835?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/8765513495413540835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=8765513495413540835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8765513495413540835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8765513495413540835'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/video-bouncing-ball-behavior.html' title='Video:  Bouncing Ball Behavior'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-1271826911096021127</id><published>2009-06-18T07:49:00.000-07:00</published><updated>2009-06-18T07:55:58.905-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>JavaOne slides posted</title><content type='html'>&lt;p&gt;Sun has posted the PDF for the presentation that I did at JavaOne this year with &lt;a href="http://www.curious-creature.org/"&gt;Romain Guy&lt;/a&gt;, &lt;a href="http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4466.pdf"&gt;Move Your Users: Animation Principles for Great User Experiences&lt;/a&gt; (you'll have to join the Sun Developer Network to access that URL, but it's easy and free).&lt;/p&gt;

&lt;p&gt;The demos were a big part of the presentation, of course (as was Romain doing a running jump off the stage and blowing the microphone), and those aren't in the slides. But most of the demos either already exist online (we showed a few from &lt;a href="http://filthyrichclients.org/"&gt;Filthy Rich Clients&lt;/a&gt;) or (in the case of the Flex demos) will be shown here as I post blogs and videos that talk about those applications in detail.&lt;/p&gt;

&lt;p&gt;Enjoy...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-1271826911096021127?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/1271826911096021127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=1271826911096021127' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/1271826911096021127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/1271826911096021127'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/javaone-slides-posted.html' title='JavaOne slides posted'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-858081669602679445</id><published>2009-06-15T07:48:00.000-07:00</published><updated>2009-06-15T07:56:54.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video: Flashcamp Presentation on Flex 4</title><content type='html'>I gave a quick talk at a recent Flashcamp at the SF Adobe building. If you want a (very) quick overview of the Flex 4 effects architecture and some examples of how to use the various new effects, check out the verbosely-named &lt;a href="http://labs.adobe.com/technologies/flash/videos/flashcamp/haase/"&gt;Using Effects and Animation in Flex 4&lt;/a&gt;.

Actually, there were a lot of great, quick talks that evening by other folks on the Flex, AIR, and tools teams: you'll probably want to grab some popcorn and watch more:
&lt;a href="http://labs.adobe.com/technologies/flash/videos/#flashcamp"&gt;http://labs.adobe.com/technologies/flash/videos/#flashcamp&lt;/a&gt;

In face, that same page has other video tutorials on Flex, Flash Builder, and Flash Catalyst. What the heck, just watch them all. You don't have work to do today, do you?
&lt;a href="http://labs.adobe.com/technologies/flash/videos/"&gt;http://labs.adobe.com/technologies/flash/videos/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-858081669602679445?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/858081669602679445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=858081669602679445' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/858081669602679445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/858081669602679445'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/video-flashcamp-presentation-on-flex-4.html' title='Video: Flashcamp Presentation on Flex 4'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-5998745714259119251</id><published>2009-06-08T14:29:00.000-07:00</published><updated>2009-06-08T14:40:31.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Effects in Flex 4 SDK Beta: Part 2</title><content type='html'>&lt;p&gt;Finally, the long-awaited cliff-hanger ending to the extensive, rich, and diverse series that began with &lt;a href="http://graphics-geek.blogspot.com/2009/06/effects-in-flex-4-sdk-beta-part-1.html"&gt;Part 1&lt;/a&gt;: allow me to introduce &lt;a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt2.html"&gt;Part 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt2.html"&gt;This second article&lt;/a&gt; on the new effects in Flex 4 concludes my discussion of the new effects. This second article covers the new effects based on the new 3D and Pixel Bender shader capabilities in Flash Player 10.&lt;/p&gt;

&lt;p&gt;As with &lt;a href="http://graphics-geek.blogspot.com/2009/06/effects-in-flex-4-sdk-beta-part-1.html"&gt;Part 1&lt;/a&gt;, there are code snippets throughout the article and all of the demos are packaged up in SWFs and source form for convenient download.&lt;/p&gt;

&lt;p&gt;Enjoy...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-5998745714259119251?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/5998745714259119251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=5998745714259119251' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5998745714259119251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5998745714259119251'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/effects-in-flex-4-sdk-beta-part-2.html' title='Effects in Flex 4 SDK Beta: Part 2'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-8488278387804888515</id><published>2009-06-08T07:47:00.000-07:00</published><updated>2009-06-08T07:49:09.440-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video: Easing Does It</title><content type='html'>&lt;p&gt;&lt;a href="http://tv.adobe.com/#vi+f16095v1007"&gt;Easing Does It&lt;/a&gt;, the next episode in the gripping and suspenseful series &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent&lt;/a&gt;, is now available from &lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;This show is a continuation of the episode &lt;a href="http://graphics-geek.blogspot.com/2009/05/video-codedependent-2-er-7.html"&gt;A Moving Comparison&lt;/a&gt;, in which we saw how to create simple animations in Flex 3 and Flex 4. This time, we'll see how to add 'easing' behavior to our Flex 3 animation to create non-linear motion.&lt;/p&gt;
&lt;p&gt;Here's the video:&lt;/p&gt;
&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9jb2RlZGVwZW5kZW50LzEzOV9jb2RfMDA4LmZsdj9yc3NfZmVlZGlkPTE2MDk1JnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/#vi+f16095v1007&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;
&lt;p&gt;Here is the demo application:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/EasingBallF3.swf" type="application/x-shockwave-flash" height="400" width="300"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is the &lt;a href="http://graphicsgeek1.googlepages.com/EasingBallF3.zip"&gt;source code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-8488278387804888515?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/8488278387804888515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=8488278387804888515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8488278387804888515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8488278387804888515'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/video-easing-does-it.html' title='Video: Easing Does It'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-4008586810694841132</id><published>2009-06-03T08:51:00.000-07:00</published><updated>2009-06-03T08:59:41.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='interview'/><title type='text'>Interview: InformIT</title><content type='html'>&lt;a href="http://www.informit.com/articles/article.aspx?p=1353606"&gt;InformIT has just published an interview&lt;/a&gt; that they did recently with me and Romain Guy. We talk about Java, Flex, our book, and random client-y stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-4008586810694841132?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/4008586810694841132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=4008586810694841132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4008586810694841132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4008586810694841132'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/interview-informit.html' title='Interview: InformIT'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-3166917056727479196</id><published>2009-06-01T08:14:00.001-07:00</published><updated>2009-06-10T09:00:49.596-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Effects in Flex 4 SDK Beta: Part 1</title><content type='html'>&lt;p&gt;As part of the beta launch, I wrote an article about the new effects that are part of Flex 4.&lt;/p&gt;

&lt;p&gt;They asked for a single article of about 2500 words, and I churned out a monster weighing in at over 10,000 words. Apparently, I have a way with words: way too much.&lt;/p&gt;

&lt;p&gt;After much gnashing of teeth and painful whittling down, we compromised on 2 articles. &lt;a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt1.html"&gt;Part one&lt;/a&gt;, which covers the Animate superclass of the new effects and a handful of the more basic effects, is now live. Look for Part 2 soon. &lt;span style="font-style: italic;"&gt;(Update: &lt;a href="http://www.adobe.com/devnet/flex/articles/flex4_effects_pt2.html"&gt;Part 2&lt;/a&gt; is now live)&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;Check out the other articles while you're there - my articles focus specifically on effects and ignore a lot of the other great changes in the release (because I knew other articles would cover them and because I was having a hard enough time getting the article down to a reasonable size without trying to explain more). For example, Matt Chotin (Flex Product Manager) wrote an overview of the new features in &lt;a href="http://www.adobe.com/devnet/flex/articles/flex4sdk_whatsnew.html"&gt;What's New in Flex 4 SDK beta&lt;/a&gt; and Joan Lafferty (on the Flex SDK QA team) covers differences in this release and the last one in &lt;a href="http://www.adobe.com/devnet/flex/articles/flex3and4_differences.html"&gt;Differences between Flex 3 SDK and Flex 4 SDK beta&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lots of stuff to read. Should keep you busy while we keep working on finishing the release.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-3166917056727479196?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/3166917056727479196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=3166917056727479196' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3166917056727479196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3166917056727479196'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/effects-in-flex-4-sdk-beta-part-1.html' title='Effects in Flex 4 SDK Beta: Part 1'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-3259651312354643396</id><published>2009-06-01T08:06:00.000-07:00</published><updated>2009-06-01T08:13:55.189-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Flex 4 SDK: Beta than Eva</title><content type='html'>&lt;p&gt;It's here, it's hot, and it's beta than ever - it's the &lt;a href="http://labs.adobe.com/technologies/flex4sdk/"&gt;Flex 4 SDK Beta&lt;/a&gt; release!&lt;/p&gt;
&lt;p&gt;This release has it all, including a new component model, new states syntax, declarative graphics, and new effects. Check out the articles on the &lt;a href="http://www.adobe.com/devnet/flex/"&gt;Flex Devnet Site&lt;/a&gt; for more information about the release. Flex 4 Beta represents what we've been aiming at for the Flex 4 release. For the most party, we just have some minor tweaks left on some of the features, some bug fixing to make it rock solid, and of course fixing any issues that come from beta feedback.&lt;/p&gt;
&lt;p&gt;Go grab the &lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Downloads"&gt;beta&lt;/a&gt; build, try it out, and let us know what you think.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-3259651312354643396?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/3259651312354643396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=3259651312354643396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3259651312354643396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3259651312354643396'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/06/flex-4-sdk-beta-than-eva.html' title='Flex 4 SDK: Beta than Eva'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-5585376642348599234</id><published>2009-05-26T08:17:00.000-07:00</published><updated>2009-05-28T20:04:47.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>JavaOne, Too</title><content type='html'>&lt;p&gt;For those not following my &lt;a href="http://weblogs.java.net/blog/chet/archive/2009/05/reanimation.html"&gt;Java blog&lt;/a&gt; (what, one post per year isn't enough?), I thought I'd mention that I'll be back at the &lt;a href="http://java.sun.com/javaone"&gt;JavaOne&lt;/a&gt; conference this year, speaking about Flex, Java, and fun graphics/animation stuff.&lt;/p&gt;

&lt;p&gt;The main thing for me this year is the presentation that I'm doing with &lt;a href="http://www.curious-creature.org/"&gt;Romain Guy&lt;/a&gt;, called "Move Your Users: Animation Principles for Great User Experiences". We'll be presenting at 11:05 on Wednesday (June 3rd), and again at a repeat session on Friday afternoon (June 5th). This year's talk will be less about code and more about concepts and design principles. Should be fun.&lt;/p&gt;

&lt;p&gt;I will also be assisting Duane Nickull in his lab on creating PDFs with LC ES and other server-side stuff that I should really learn one of these days. There is also an Adobe event at Jillian's on Wednesday from 6:30-9:30 PM - stop by the Adobe booth for more information. Speaking of the booth, I'll be spending some quality time there when not in sessions doing some small talks, demos, and generally hanging out trying to look like I work for Marketing. Stop by if you're around the show floor.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-5585376642348599234?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/5585376642348599234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=5585376642348599234' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5585376642348599234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5585376642348599234'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/05/javaone-too.html' title='JavaOne, Too'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-5148126760011731035</id><published>2009-05-22T07:29:00.000-07:00</published><updated>2009-05-22T07:36:12.372-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video: CodeDependent #2, er, 7</title><content type='html'>&lt;p&gt;Now things are really moving...&lt;/p&gt;
&lt;p&gt;The next episode of &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent&lt;/a&gt;, "A Moving Comparison," is out. There are actually 7 episodes in &lt;a href="http://tv.adobe.com/#pg+16095"&gt;the show&lt;/a&gt; so far, but 5 of those are reruns, rendered onto the spiffy new CodeDependent set. (I suspect that the earlier versions of those episodes, rendered on the standard Aodbe Developer Connection backdrop, will become collectors' items. Somewhere. Sometime. Perhaps they will be re-master and re-released someday, as "Codedependent Classics"). &lt;/p&gt;
&lt;p&gt;This latest show is a brand new one, starting right where &lt;a href="http://graphics-geek.blogspot.com/2009/05/video-codedependent-1.html"&gt;the first one, "Graphics in Flex 3 and Gumbo"&lt;/a&gt;, left off. In the first episode, I compared simple custom graphics in Flex 3 to simple graphics in Flex 4 (codename Gumbo). In this episode, I compare simple animations in Flex 3 and Gumbo on those same graphics objects.&lt;/p&gt;
&lt;p&gt;Here's the video:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9jb2RlZGVwZW5kZW50LzEzOV9jb2RfMDA3LmZsdj9yc3NfZmVlZGlkPTE2MDk1JnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/vi+f16095v1006&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here are the demos:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/MovingBallF3.swf" type="application/x-shockwave-flash" height="600" width="200"&gt;&lt;/embed&gt; &lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/MovingBallF4.swf" type="application/x-shockwave-flash" height="600" width="200"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is the &lt;a href="http://graphicsgeek1.googlepages.com/MovingBall.zip"&gt;source code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-5148126760011731035?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/5148126760011731035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=5148126760011731035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5148126760011731035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5148126760011731035'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/05/video-codedependent-2-er-7.html' title='Video: CodeDependent #2, er, 7'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-8818151593234620010</id><published>2009-05-12T08:30:00.000-07:00</published><updated>2009-05-12T10:42:16.008-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><title type='text'>Video: Codedependent Reruns Already?</title><content type='html'>&lt;p&gt;Usually, a show has reruns after at least one successful season, when everyone's on vacation and the actors are playing hardball for contract renewals and the public is demanding content that just isn't there. But with &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent&lt;/a&gt;, we have reruns after just one show. It's either that popular or the producers are just trying to amortize the costs for that amazingly expensive and glamorous CG set backdrop.&lt;/p&gt;

&lt;p&gt;In case anyone's checking out the &lt;a href="http://tv.adobe.com/#pg+16095"&gt;CodeDependent video page&lt;/a&gt;, or the &lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=315640759"&gt;Codedependent show on iTunes&lt;/a&gt;, I wanted to point out that there are a small number of reruns in the pipe. That is, there are a few videos that came out in the last several weeks on &lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt; before the CodeDependent show existed (our people were still talking to their people, the unions were on strike, the writers wanted more donuts, and we were all doing the usual bickering and negotiating that is a natural part of any major show production) that have been sucked up under the CodeDependent banner. The producers have taken the old content and basically re-rendered it with the nifty new grayscale backdrop. Same content, different look, like plastic surgery without the cost, wider smile, and mortality risks.&lt;/p&gt;

&lt;p&gt;There will be a handful of these reruns coming out in the next few days, then it's back to new content. I think this is probably the only time there will be reruns on CodeDependent, but maybe if there's a writers' strike next year, we'll see old home movies of me pushed as CodeDependent shows.&lt;/p&gt;

&lt;p&gt;In the meantime, I'll continue to post items here on this blog when there is new content. Look for a new show in a few days...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-8818151593234620010?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/8818151593234620010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=8818151593234620010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8818151593234620010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/8818151593234620010'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/05/video-codedependent-reruns-already.html' title='Video: Codedependent Reruns Already?'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-3100787801028366320</id><published>2009-05-11T07:27:00.000-07:00</published><updated>2009-05-22T07:34:11.538-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Video: CodeDependent #1</title><content type='html'>&lt;p&gt;&lt;a href="http://tv.adobe.com/#ch+Developer"&gt;Adobe TV&lt;/a&gt; has just posted the first in what I hope to be a very long run of my new show, “CodeDependent”. Fortunately, the show is not on the Fox network, so that may give it a better chance of not being canceled.&lt;/p&gt;

&lt;p&gt;The CodeDependent show is not that different from the videos I’ve been doing already: short tutorials on various aspects of Flex and Flash that I find interesting. The biggest change is that they should be more regular (we’re aiming for an every-other-week schedule as we settle into it). Also, they producers gave me a nifty new grayscale CG set design to match my nifty old grayscale CG personality.&lt;/p&gt;

&lt;p&gt;This first show is a simple tutorial on Flex 3 and Flex 4 (codename Gumbo) graphics. For the Flex 3 demo, you'll see how to drop down into ActionScript code to draw simple graphics through the Flash APIs into your Flex application. For the Flex 4 version, you'll see you to do the same thing through MXML graphics tags. In future episodes, we'll build on these simple examples and see how to animate the objectsand how to get more realistic animations. (Can you feel the suspense of this cliff-hanger? I’m trying to incorporate standard television series techniques into the show. Look for a laughtrack soon.) But I’m getting way ahead of myself.&lt;/p&gt;

&lt;p&gt;Here’s the video:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9jb2RlZGVwZW5kZW50LzEzOV9jb2RfMDAxLmZsdj9yc3NfZmVlZGlkPTE2MDk1JnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/vi+f16095v1000&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Here’s the awesome demo application:&lt;/p&gt;

&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/SimpleGraphicsF3.swf" type="application/x-shockwave-flash" height="200" width="600"&gt;&lt;/embed&gt;

&lt;p&gt;And &lt;a href="http://graphicsgeek1.googlepages.com/SimpleGraphics.zip"&gt;here’s the source code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy. And welcome to my show…&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-3100787801028366320?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/3100787801028366320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=3100787801028366320' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3100787801028366320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3100787801028366320'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/05/video-codedependent-1.html' title='Video: CodeDependent #1'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-3015550149595549366</id><published>2009-05-05T10:57:00.000-07:00</published><updated>2009-05-05T11:24:17.861-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='flexbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Effects and other Flex Stuff at Flash Camp SF: May 29th</title><content type='html'>&lt;a href="http://www.mikechambers.com/blog/2009/05/05/flashcamp-san-francisco-may-29th-flex-4-flash-catalyst-flex-builder-4/"&gt;Mike Chambers&lt;/a&gt; just posted info about Flash Camp San Francisco on the evening of Friday, May 29th at the Adobe offices in SF. I'll be talking about Flex 4 effects at 9:10 PM. That's about 10 minutes past my bedtime, so I'll probably hit the coffee harder than the beer that evening.

This gathering is primarly about Flex 4, Flex Builder 4, and Flash Catalyst. Go &lt;a href="http://www.mikechambers.com/blog/2009/05/05/flashcamp-san-francisco-may-29th-flex-4-flash-catalyst-flex-builder-4/"&gt;read about the event&lt;/a&gt;, &lt;a href="http://www.mikechambers.com/blog/2009/05/05/flashcamp-san-francisco-may-29th-flex-4-flash-catalyst-flex-builder-4/"&gt;check out the schedule&lt;/a&gt;, and &lt;a href="http://flashcampsf.eventbrite.com/"&gt;register&lt;/a&gt;. It's free, but space is limited, so register now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-3015550149595549366?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/3015550149595549366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=3015550149595549366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3015550149595549366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3015550149595549366'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/05/effects-and-other-flex-stuff-at-flash.html' title='Effects and other Flex Stuff at Flash Camp SF: May 29th'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-4731658824252305557</id><published>2009-04-09T11:26:00.000-07:00</published><updated>2009-04-09T11:32:00.979-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='interview'/><title type='text'>Video: Interview on Parleys.com</title><content type='html'>&lt;p&gt;The &lt;a href="http://javaposse.com/"&gt;Java Posse&lt;/a&gt; interviewed &lt;a href="http://www.jamesward.com/blog/"&gt;James Ward&lt;/a&gt; and I during the &lt;a href="http://devoxx.com/"&gt;Devoxx&lt;/a&gt; conference last December. Catch it on the excellent &lt;a href="http://parleys.com/"&gt;parleys.com&lt;/a&gt; site or watch it here:&lt;/p&gt;

&lt;p align="center"&gt;&lt;object height="443" width="474"&gt;&lt;param name="movie" value="http://www.parleys.com/download/attachments/5443/parleysshare.swf?pageId=28016650"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="pageId" value="28016650"&gt;&lt;embed src="http://www.parleys.com/download/attachments/5443/parleysshare.swf?pageId=28016650" type="application/x-shockwave-flash" allowfullscreen="true" width="474" height="443"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-4731658824252305557?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/4731658824252305557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=4731658824252305557' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4731658824252305557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4731658824252305557'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/04/video-interview-on-parleyscom.html' title='Video: Interview on Parleys.com'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-1340788535009043559</id><published>2009-04-01T10:34:00.000-07:00</published><updated>2009-04-08T18:03:11.914-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Post: Fix Prefix</title><content type='html'>&lt;p style="font-style: italic;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Update 4/2/09: Hopefully it is obvious, but in case anyone stumbles upon this post unknowingly, please note that it was an April Fools joke.
&lt;/span&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;I hate explaining or pointing out jokes. It's like having to bribe the teacher to pass your child because the kid couldn't master Kindergarten on their own merits. But in this case, I'd like to be clear to avoid any confusion over what Flex actually supports and why.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Like any good joke and some former presidents, there is a small bit of truth behind it, but a lot of it's just hooey. Except for item 6, which really is the current state of the Spark component names. And the part about the community. We really do have posters of them up on our walls, at work and at home. Every one of 'em.&lt;/span&gt;
&lt;/p&gt;&lt;p style="font-style: italic;"&gt;
&lt;/p&gt;&lt;p style="font-style: italic;"&gt;What's in a name? A rose by any other name would still draw blood...&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;If  you’ve paid any attention to the development of Gumbo, the next release of the Flex platform, you probably know that there  was a dust-up about the naming of the new components and effects in Gumbo. In  technical terms, this is known as a ‘kerfluffle’, but it generally boiled down  to a process of the community beating up the Flex team on a regular basis.&lt;/p&gt;
&lt;p&gt;Now  we on the Flex team love the community: we have pictures of them in our cubes,  we try to friend them on FaceBook (though they usually reject us), and we generally suck  up to them every chance we get. In fact, we have an internal contest of  collecting signatures of community members. &lt;a href="http://iamdeepa.com/blog/"&gt;Deepa&lt;/a&gt;’s currently ahead,  but we suspect some are forgeries.&lt;/p&gt;
&lt;p&gt;Because  of our abiding, nearly predatory love for the community, we wanted to make things  right. So when people found fault with our proposed component names, we pissed  and moaned and generally felt sorry for ourselves. Then, in a feat of maturity  heretofore unknown to engineers, we sucked it up and tried to fix it.&lt;/p&gt;
&lt;p&gt;I’d  like to lay out the general history of the naming proposals, and then show the  final result. I’m sure you’ll agree with us that it’s really fantastic now and  that you now respect and admire us for the changes we’ve made. And who knows –  maybe we can even get your autograph.&lt;/p&gt;
&lt;p&gt;For  the descriptions below, I’ll focus (get it? &lt;em&gt;focus&lt;/em&gt;! Just another in a hilarious  serious of UI toolkit-related word plays. God, I love working on this  technology!) on the ‘button’ component, as it’s representative of everything  else in the toolkit, from components to effects to that utility class that calculates  Pi to 1,547 digits (using the circular reasoning algorithm).&lt;/p&gt;
&lt;h2&gt;1. First attempt: Button&lt;/h2&gt;
&lt;p&gt;In  the beginning, there was a word, and the word was Button.

Unfortunately,  that word was already taken by Button in Halo. But surely nobody would care  when the new Spark button was going to be so magnificent that nobody would ever  care about the old Button again, right? So we named our new Spark button ‘Button’  and went on our merry way.

But  the tools, Lo did the chafe and grumble. What about applications that used both  Halo and Spark components? What to hint? What to complete? How to distinguish?

Clearly,  another solution was desired.&lt;/p&gt;
&lt;h2&gt;2. Second attempt: Synonym for  Button&lt;/h2&gt;
&lt;p&gt;Well,  since Button was taken, we needed a different name for the same darned thing.  We considered several alternatives, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ThingThatPushes&lt;/li&gt;
&lt;li&gt;RectangularClickyThing&lt;/li&gt;
&lt;li&gt;BetterButton&lt;/li&gt;
&lt;li&gt;OnButt&lt;/li&gt;
&lt;li&gt;PressMe&lt;/li&gt;
&lt;li&gt;Presser&lt;/li&gt;
&lt;li&gt;ComponentFormerlyKnownAsButton&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The  last of these was the leading contender for some time. We even developed a  custom glyph for the object, but it turned out the glyph could not be  represented in unicode and that the class became so long that it bloated our  SWF sizes by 10x, so we sadly gave up on this angle and searched for something  else.&lt;/p&gt;
&lt;h2&gt;3. Attempt the Third: Suffix&lt;/h2&gt;
&lt;p&gt;It  turned out that ‘Button’ really was the best name for something that was, well,  a button. We realized that we needed something distinguish the new from the old  button, however, so we considered suffix text, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ButtonNew&lt;/li&gt;
&lt;li&gt;Buttonn (repeat the last letter, like Panell, Checkboxx, etc. This  broke down when legal objected to our use of ‘Canvass’ as being obscene and  derogatory toward Canvas-like objects).&lt;/li&gt;
&lt;li&gt;ButtonSpark&lt;/li&gt;
&lt;li&gt;ButtonButton&lt;/li&gt;
&lt;li&gt;Button2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All  of these would have been possible, but we gave up on this path due to what we  in the trade call “The Icky Factor.” We did try out these various alternatives  in front of a live studio audience. They threw up.&lt;/p&gt;
&lt;h2&gt;4. The Fourth Attempt: Prefix&lt;/h2&gt;
&lt;p&gt;Well,  if a suffix wouldn’t do it, surely a prefix would. So we tried several,  including:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;JButton: &lt;a href="http://hansmuller.wordpress.com/category/uncategorized/"&gt;Hans&lt;/a&gt; suggested this one. It seemed very familiar to some of  us, like coming home. But execs rejected it on the paltry basis that the letter  J has nothing to do with Flex.&lt;/li&gt;
&lt;li&gt;SparkButton: This variation had several advantages: &lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;It would promote the branding of the new Spark theme in Gumbo.&lt;/li&gt;
&lt;li&gt;It had a perky ring to it&lt;/li&gt;
&lt;li&gt;It would help developers practice their typing skills by requiring these extra five letters for every component and effect.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Nonetheless, this variation was killed in committee for being too easily confused with the UI components released by the Scatological Processes of Anitomically Correct Koalas agency.&lt;/p&gt;
&lt;li&gt;SButton: This was a leading contender for a while, but finally withered and died when someone realized that the new HitTester component would suffer with the preceding S.
&lt;/li&gt;&lt;li&gt;FxButton: Finally we had a winner.
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;FxButton had clearly won. It had the multiple merits of being easy to type, indicative of the Flex platform, and having that cool letter "x" in it that all hip products nowadays must have. Obviously people would love FxButton and would shower praise and autographs upon us.&lt;/p&gt;
&lt;h2&gt;5. The Fifth Attempt: The Community Hates It&lt;/h2&gt;
&lt;p&gt;It's not clear what happened: Do international keyboards lack the F or x keys? Did people not enjoy the extra typing practice it gave them? Did they not enjoy the clever but subtle pun that the new component was a "fix" for the old one (we laughed for weeks over that one. Oh, we have a jolly old time in the Flex offices, that's for sure!).&lt;/p&gt;
&lt;p&gt;Whatever the reason, the community hated it. They railed upon our decision, they cast aspersions on the Fx prefix, and they scrawled mean words about us on bathroom walls in engineering institutions everywhere. &lt;/p&gt;
&lt;p&gt;So we swallowed our pride, along with a case of scotch, and headed back to the planning room for&lt;/p&gt;
&lt;h2&gt;6. The Sixth Attempt: Goto (1)&lt;/h2&gt;
&lt;p&gt;It turned out that 'Button' was really the best name for Button after all. The nuance was that we needed to set up separate namespaces, a common pattern in Flex applications already, to deal with the name collisions. So we did this, setting up a namespace for the core language, another for the old Halo components, and a third for the Spark components, and then went through the joys and pleasures of renaming all of our classes again, enabling our QE department to rewrite tests and generally feel fulfilled and fully employed. As a result, we ended up with a Halo button that you would use by calling &amp;lt;mx:Button/&amp;gt; and a Spark button that you would create by calling &amp;lt;s:Button/&amp;gt;. They're both buttons, they just live in different namespaces. Like twins that are raised in different cultures, one that grows up to be a cop, the other a criminal. Then they meet by chance during a bank job and wind up pointing guns at each other, each having to make his own choice whether to take out his brother for the sake of the life he's chosen, yet clearly hearkening for the shared bonds and experiences that genes bring.&lt;/p&gt;
&lt;h2&gt;7. The Final Chapter&lt;/h2&gt;
&lt;p&gt;So that's it, that's the state of the renames: We now have the same names for the same components in Halo and Spark, except for the different namespaces to qualify them accordingly. &lt;/p&gt;
&lt;p&gt;But that was yesterday. Then, just today, someone suggested something that is so huge, so fundamentally awesomely stunning and cool that we're rewriting the SDK and all the tests again and have now checked in the final fix to the whole thing: self-obfuscating code.&lt;/p&gt;
&lt;p&gt;The original problem to solve was that we didn't want to confuse people by having the same name for different things. In the meantime, developers of web applications like to obfuscate their code to make it harder for shady engineers (perhaps their twins, raised in a different culture to a life of high-tech crime) to steal their ideas. In the interest of both of these goals, we now introduce:&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &amp;lt;mx:Bxgthnr5gl!8x/&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Every night, the build auto-generates a random series of ASCII characters for each Spark component, thus guaranteeing that each component name is different from other Spark component names, from the old Halo component names, and from anything else that might otherwise confuse developers. Developers can now be assured that component names are completely unique. And since the generation is done as part of the build, we also auto-generate the ASDocs at the same time, making it easy for developers to figure out what the correct component names are for the build that they are using.&lt;/p&gt;
&lt;p&gt;No more "Which Button do I use?" or "What was that prefix again?" or "I hate when other people can read my code!" or "Gee, I wish names were randomly generated so that I could practice my random keystroke typing speed!" Now, with the new Fully Obfuscated Occasionally Long component names, we expect Spark and the Flex Gumbo platform to be the favorite platform for RIA developers everywhere.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-1340788535009043559?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/1340788535009043559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=1340788535009043559' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/1340788535009043559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/1340788535009043559'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/04/post-fix-prefix.html' title='Post: Fix Prefix'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-7077014931116840373</id><published>2009-03-24T08:13:00.000-07:00</published><updated>2009-03-24T08:23:38.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><title type='text'>Video: A Moment of Reflexion</title><content type='html'>&lt;p&gt;Finally, after great suspense and bitings of nails, &lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt; has posted my Reflexion Container video. This video was meant to be Part 1 in a sequence of 2 parts, but for reasons that escape me, &lt;a href="http://graphics-geek.blogspot.com/2009/01/video-what-drag.html"&gt;Part 2 (What a Drag)&lt;/a&gt; got posted first. Many things in life are beyond our control: the weather, the things our children say in public, and our cravings for bacon. Apparently, the order of videos posted on Adobe TV is just another random factor in life. &lt;/p&gt;
&lt;p&gt;This video shows a container that displays an image along with its reflection. The application has sliders to control the various parameters of the reflection, so that you can see how these parameters affect the realism of the reflection. The reflected image can be changed by clicking on a different thumbnail or, as we saw in the &lt;a href="http://graphics-geek.blogspot.com/2009/01/video-what-drag.html"&gt;previous Drag and Drop video&lt;/a&gt;, by dragging and dropping that thumbnail onto the reflection container.&lt;/p&gt;
&lt;p&gt;The techniques used in creating the reflection are not new; I wanted to create this demo to show how they might be used in a sample application container. Also, I wanted to expose the controls to the reflection parameters so that we could see how the various mechanisms affect the result. A couple of resources that I consulted for the reflection technique include the ReflectionPanel demo by Romain Guy (also the photographer of the pictures used in the demo) in a Java book that I've read entitled &lt;a href="http://filthyrichclients.org/"&gt;Filthy Rich Clients&lt;/a&gt; and, a bit closer to Flex, &lt;a href="http://www.adobe.com/devnet/flash/articles/reflect_class_as3.html"&gt;an article by Ben Pritchard&lt;/a&gt; on the Adobe Devleoper Connection site..&lt;/p&gt;
&lt;p&gt;Video being what it is, you may not be able to see some of the impact of the reflection parameters that clearly. For example, when I talk about blurring the reflection to make it more realistic, it actually looks kind of blurry to begin with. Here is the demo itself so that you can play with it directly:&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/Reflection.swf" type="application/x-shockwave-flash" height="900" width="600"&gt;&lt;/embed&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And &lt;a href="http://graphicsgeek1.googlepages.com/ReflexionSrc.zip"&gt;here is the source code&lt;/a&gt; for anyone wishing to see how it actually works. I should point out that it's not the cleanest code, since it was written in a conference rush. The reflection code is the main point of it all, and it's pretty striaghtforward, but the mechanisms of updating the image and recreating the reflection sprite could definitely be cleaner. But in the interests of getting the code out there for people to see, I'm posting it earlier than I might otherwise.&lt;/p&gt;
&lt;p&gt;Here's the video - enjoy:&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9hZGNfcHJlc2VudHMvNjRfYWRjXzEwNC5mbHY/cnNzX2ZlZWRpZD0xNDcyJnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/#vi+f1472v1067&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-7077014931116840373?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/7077014931116840373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=7077014931116840373' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/7077014931116840373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/7077014931116840373'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/03/video-moment-of-reflexion.html' title='Video: A Moment of Reflexion'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-4600364476050066699</id><published>2009-03-17T07:29:00.000-07:00</published><updated>2009-03-17T07:31:32.686-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Animation Spawning</title><content type='html'>&lt;p&gt;A developer posted an issue on one of the Flex forums last week that the new Gumbo effects had choppy artifacts when running his test case, especially when compared to similar code that used the &lt;a href="http://code.google.com/p/tweener/"&gt;Tweener&lt;/a&gt; animation library. Being of a sensitive and insecure nature, and wanting to fix any bugs in my effects code, I looked into the problem and discovered some things about animation seemed worth this post.&lt;/p&gt;
&lt;h2&gt;The Test Case&lt;/h2&gt;
&lt;p&gt;The original test case used a 3D rotation effect. But between different behavior between Tweener and our FxRotate3D effect and my workspace being a tad torn apart at the moment, I simplified the case down to animating a small square to the current mouse position. Specifically, as you move the mouse around you set a new position to which the the square will animate. If the mouse stops moving, the square will animate toward that position and stop when it gets there. Otherwise, the square will keep animating toward whatever the new position is, changing direction a sthe mouse moves around.&lt;/p&gt;
&lt;p&gt;The original test case was set up to start a new animation every time the mouse moved, in a mouse movement handler. Here's that code for the Tweener version:&lt;/p&gt;
&lt;pre&gt;
       private function mouseMoveHandler(event:MouseEvent):void
       {
           Tweener.addTween(rect,
               {x:event.stageX,y:event.stageY,time:2});
       }
&lt;/pre&gt;
&lt;p&gt;where this call animates the rectangle's x and y  properties from their current values to the new x/y location of the mouse over a duration of 2 seconds. &lt;/p&gt;
&lt;p&gt;Here is similar code for the Flex effects version:&lt;/p&gt;
&lt;pre&gt;
       private function mouseMoveHandler(event:MouseEvent):void
       {
           mover.xTo = event.stageX;
           mover.yTo = event.stageY;
           mover.stop();
           mover.play();
       }
&lt;/pre&gt;
&lt;p&gt;where the Flex mover effect is declared like this:&lt;/p&gt;
&lt;pre&gt;    &amp;lt;Declarations&amp;gt;
       &amp;lt;easing:Exponential id="exponentialEase" easeInFraction="0"/&amp;gt;
       &amp;lt;FxMove id="mover" target="{rect}" easer="{exponentialEase}" duration="2000"
           animationUpdate="updateHandler(event)"/&amp;gt;
   &amp;lt;/Declarations&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Note that the Exponential ease is not in the SDK yet - I created one for this example to mimic the behavior of Tweener's default easing. I will be adding that class sometime soon, along with more of the old easing classes for the Flex3 effects.&lt;/p&gt;
&lt;h2&gt;The Demos&lt;/h2&gt;
&lt;p&gt;Here's the Tweener version of the application. If you move the mouse constantly in a particular direction, you can see the square hopping to keep up with it. It's not smooth, but it does aggressively try to keep up, and gets smoother when the mouse stops:&lt;/p&gt;
&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/MoveToMouseTweener.swf" type="application/x-shockwave-flash" height="300" width="400"&gt;&lt;/embed&gt;
&lt;p&gt;And here's the Flex effects version of the application:&lt;/p&gt;
&lt;embed pluginspage=" http://www.macromedia.com/go/getflashplayer" src="http://graphicsgeek1.googlepages.com/MoveToMouse.swf" type="application/x-shockwave-flash" height="300" width="400"&gt;&lt;/embed&gt;
&lt;p&gt; Note that the square seems to move much more slowly when the mouse is in constant motion. In fact, inside of browsers on the Mac (which was the test platform for the person that submitted the original issue), sometimes the square doesn't move at all until the mouse stops moving, at which point the animation engine kicks in and we get a smooth animation of the square.&lt;/p&gt;
&lt;p&gt;Now notice that the Flex effects test has a checkbox in the upper-right, cunningly labeled "Smooth Moves." If you check that, you may notice that the animations are a bit snappier, and closer to what you are seeing in the Tweener version. (In fact, I see smoother performance in general with this version than the Tweener version, probably because we force a higher frame rate on animations by posting an updateAfterEvent request whenever there is a Timer event, which will force a render event between the usual enterFrame events). And on the Mac, you should notice that you no longer get complete freezing or jarring delays while the mouse is moving around. All in all, the app is much better behaved when that box is checked.&lt;/p&gt;
&lt;p&gt;So what was the fix?&lt;/p&gt;
&lt;h2&gt;The Fix&lt;/h2&gt;
&lt;p&gt;It turns out that the original method of spawning new animations for every mouse move is not just more overhead than you really want or need in your animation - it's actually bad practice. Depending on the platform you're on, the frame rate you're getting, the event at which Timer events (which are currently the basis for the Flex effects animation updates) are coming in, and the rate at which mouse events are coming in, you're going to get somewhat unpredictable behavior. What's happening is this:&lt;/p&gt;
&lt;p&gt;Between actual animation updates, whether they happen because of a Timer (in the case of Flex effects) or the enterFrame event (in the case of Tweener), you may be restarting your animation one or more times. And depending on when those restarts happen relative to the next animation update, the behavior of those animations may not be what you want. In the case of Flex effects, imagine that you restart your animation 4 times between animation updates because mouse move events came in that many times between updates. When the system finally gets to update the animation, it will use the last one started, which may have started just prior to, or even at the same time as, the current update time. So you may get no movement whatsoever from your animation because according to the time elapsed between the time that you started it and the time you measured it, no time has passed, so the object shouldn't move. Then you start getting mouse events again, and spawning new animations, and you eventually reach the next animation update event only to find that, once again, you are processing an animation that hasn't had any time pass since it was begun.&lt;/p&gt;
&lt;p&gt;"But, but, but, " you may justifiably be stuttering, "What about Tweener? Why is that system able to handle this situation better and keep that object moving?"&lt;/p&gt;
&lt;p&gt;Why, indeed? The answer is that it does not actually record the true start time for any animation, but rather uses the time used at the last animation update, which is the previous enterFrame event. So when you restart an animation just prior to the next enterFrame event, it doesn't matter that very little or no real time passes between starting it and processing it the first time - the system will process it as if it had been started at the previous enterFrame time. So our little square is able to keep moving around on the screen because the constantly restarted animations are using inflated elapsed times for every calculation.&lt;/p&gt;
&lt;p&gt;Note: I'm not saying that Tweener should or should not do it this way; it's just the way that that system happens to work, just as Flex effects work differently by assigning a real start time based on when the effect is started. &lt;/p&gt;
&lt;p&gt;But when I realized that that was the key that was causing the stutter I was seeing on Mac browsers for the Flex effects version, I realized that the problem was not in the way that we were handling animations (because I do want Flex effects to reflect the real elapsed time, regardless of when they are started), but rather in how and when these animations were being launched. In particular, it doesn't make sense to launch several animations in between times when we're actually updating the animation. Instead, it makes more sense, both because of the issues here and from the "don't do so freaking much work" standpoint, to track the mouse movement but only cause it to restart animations at other, less frequent intervals.&lt;/p&gt;
&lt;p&gt;The "fix" embedded in the "Smooth Moves" variation in the application above does just that: it tracks the mouse movement constantly and then uses the last known position to launch a new animation in the next enterFrame handler (if the position has changed since we started the last animation). In this way, we can be assured that we're letting our animation run at least a little bit before we clobber and restart it with new values, potentially stalling out because we're not allowing things to move at all before we restart a new animation in place of the older one.&lt;/p&gt;
&lt;p&gt;Here's the complete code for the Flex effects version - you can see how we handle the animation-spawning logic differently based on the setting of the checkbox. By default, we restart the effect every time the mouse moves. But when the checkbox is selected (&lt;code&gt;smoothMoves.selected == true&lt;/code&gt;), then we only record the last mouse position in &lt;code&gt;mouseMoveHandler()&lt;/code&gt;, and we defer spawning a new animation until the next &lt;code&gt;enterFrame()&lt;/code&gt; call.&lt;/p&gt;
&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;FxApplication xmlns="http://ns.adobe.com/mxml/2009" width="100%" height="100%"
   enterFrame="enterFrame(event)" mouseMove="mouseMoveHandler(event)"
   xmlns:easing="easing.*"&amp;gt;
   &amp;lt;Script&amp;gt;
       &amp;lt;![CDATA[
       import mx.events.AnimationEvent;
      
       private var lastMouseX:int;
       private var lastMouseY:int;
       private var mouseMoved:Boolean;
      
       private function mouseMoveHandler(event:MouseEvent):void
       {
           if (smoothMoves.selected)
           {
               lastMouseX = event.stageX;
               lastMouseY = event.stageY;
               mouseMoved = true;
               if (!mover.isPlaying)
                   mover.play();
           }
           else
           {
               mover.xTo = event.stageX;
               mover.yTo = event.stageY;
               mover.stop();
               mover.play();
           }
       }
       private function enterFrame(event:Event):void
       {
           if (mouseMoved)
           {
               mover.xTo = lastMouseX;
               mover.yTo = lastMouseY;
               mover.stop();
               mover.play();
               mouseMoved = false;
           }
       }
       ]]&amp;gt;
   &amp;lt;/Script&amp;gt;
   &amp;lt;Declarations&amp;gt;
       &amp;lt;Power id="powerEase" easeInFraction="0" exponent="7"/&amp;gt;
       &amp;lt;easing:Exponential id="exponentialEase" easeInFraction="0"/&amp;gt;
       &amp;lt;FxMove id="mover" target="{rect}" easer="{exponentialEase}" duration="2000"/&amp;gt;
   &amp;lt;/Declarations&amp;gt;
   &amp;lt;Rect id="rect" width="20" height="20"&amp;gt;
       &amp;lt;fill&amp;gt;
           &amp;lt;SolidColor color="0xff0000"/&amp;gt;
       &amp;lt;/fill&amp;gt;
   &amp;lt;/Rect&amp;gt;
   &amp;lt;HBox top="10" right="10"&amp;gt;
       &amp;lt;Label text="Smooth Moves"/&amp;gt;
       &amp;lt;CheckBox id="smoothMoves"/&amp;gt;
   &amp;lt;/HBox&amp;gt;
&amp;lt;/FxApplication&amp;gt;&lt;/pre&gt;
&lt;p&gt;So: don't spawn animations too aggressively; you may not get the effect you're after from the effect. And note that this approach should work just as well for Tweener (or any other animation engine) as for Flex effects; Tweener only happened to look better in this situation because of its inherent timing behavior, but there would be no reason not to back off and have it spawn less animations too.&lt;/p&gt;
&lt;h2&gt;p.s.&lt;/h2&gt;
 &lt;p&gt;As a side note, I should point out that another artifact that the original poster ran into was caused by playing the Flex effect multiple times without stopping the previous one(s). You should always, at least in the current Flex effects system, &lt;code&gt;stop()&lt;/code&gt; currently playing effects on the same target/property, because otherwise you're effectively giving that property multiple, conflicting instructions at every animation update, as all of the active animations on that property may try to assign different values to it. Tweener does not have this issue because it auto-stops any animations running on that target/property, but Flex effects require you to stop the effect itself. Note that this doesn't mean that you need to stop all effects in the system when you play a new one, or even all effects running on a particular target; the only time that it's an issue is when there are multiple effects running on the same property of the same target(s), as is the case in the example here, where we are always changing the same target's &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; properties.&lt;/p&gt;
&lt;p&gt;If you're interested in the full source code, which includes the simple examples above plus the supporting Exponential and Tweener classes used by the examples, &lt;a href="http://graphicsgeek1.googlepages.com/MoveToMouseSrc.zip"&gt;here it is&lt;/a&gt;. Note that building the Flex effects example requires some recent build of the Gumbo SDK, as it uses classs that only exist in that version of the platform. If you really want to, you should be able to run similar tests with Flex 3 effects (using components instead of the new Gumbo Rect object), since they use the same underlying Timer facility. But the main point of the article was in the demos and explanations; the code is just provided to give a sense of closure.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-4600364476050066699?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/4600364476050066699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=4600364476050066699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4600364476050066699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4600364476050066699'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/03/animation-spawning.html' title='Animation Spawning'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-5434065905907508084</id><published>2009-03-13T07:37:00.000-07:00</published><updated>2009-03-13T07:46:29.820-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Video: Flex 3 Effects</title><content type='html'>&lt;p&gt;&lt;a href="http://tv.adobe.com/"&gt;Adobe TV&lt;/a&gt; has posted a video of me talking about Flex 3 effects. This is basically a subset of the material I covered in my MAX presentation, specifically about the Flex 3 effects architecture: Tween, Effects, Transitions, and so on. No demos this time, just slides, but hopefully helpful if you're trying to figure out how all of these classes and capabilities work together.&lt;/p&gt;

&lt;p&gt;Effects are, I think, one of the cooler things about the Flex platform, especially when they make it so easy to provide simple state transitions for a richer user experience. Understanding how they all fit together can help you make more 'effective' use of them.&lt;/p&gt;

&lt;p&gt;Enjoy....&lt;/p&gt;

&lt;embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="600" height="385" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9hZGNfcHJlc2VudHMvNjRfYWRjXzA5Ni5mbHY/cnNzX2ZlZWRpZD0xNDcyJnhtbHZlcnM9Mg==&amp;w=600&amp;t=http://tv.adobe.com/vi+f1472v1060&amp;h=385"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-5434065905907508084?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/5434065905907508084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=5434065905907508084' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5434065905907508084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/5434065905907508084'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/03/video-flex-3-effects.html' title='Video: Flex 3 Effects'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-3026761797431294064</id><published>2009-03-12T13:06:00.000-07:00</published><updated>2009-03-12T13:24:48.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><title type='text'>AS34J2: ActionScript for Java Developers, Part Two</title><content type='html'>&lt;p&gt;The suspense is over, life can return to normal: &lt;a href="http://javaworld.com/"&gt;JavaWorld&lt;/a&gt; has posted the second and final installment of my two-part article, &lt;a style="font-style: italic;" href="http://www.javaworld.com/javaworld/jw-03-2009/jw-03-actionscript2.html"&gt;ActionScript for Java Developers&lt;/a&gt;, which is based on a presentation that &lt;a href="http://www.jamesward.com/"&gt;James Ward&lt;/a&gt; and I did at the &lt;a href="http://devoxx.com/"&gt;Devoxx &lt;/a&gt;conference in December.
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-03-2009/jw-03-actionscript2.html"&gt;Part 2&lt;/a&gt; is a bit deeper than &lt;a href="http://www.javaworld.com/javaworld/jw-02-2009/jw-02-actionscript1.html"&gt;Part 1&lt;/a&gt;. Now that we've gotten past some of the basic syntax issues in the languages, we're able to get into more complex topics, including Properties, Dynamic aspects of ActionScript, and Functions.&lt;/p&gt;
&lt;p&gt;Enjoy...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-3026761797431294064?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/3026761797431294064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=3026761797431294064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3026761797431294064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/3026761797431294064'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/03/as34j2-actionscript-for-java-developers.html' title='AS34J2: ActionScript for Java Developers, Part Two'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-2006869744631560563</id><published>2009-03-05T11:39:00.000-08:00</published><updated>2009-03-05T11:53:54.304-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Devoxx Talk Posted on Parleys.com: 'The Future of Rich Internet Applications'</title><content type='html'>&lt;p&gt;
The &lt;a href="http://parleys.com/"&gt;Parleys.com&lt;/a&gt; site has just posted the talk that I did at &lt;a href="http://devoxx.com/"&gt;Devoxx&lt;/a&gt; in December with Matt Chotin (Flex SDK Product Manager) and James Ward (Flex Evangelist).
&lt;/p&gt;
&lt;p&gt;
Go check out the &lt;a href="http://parleys.com/display/PARLEYS/Home#talk=25919501;slide=1;title=The%20Future%20Of%20Rich%20Internet%20Applications"&gt;presentation&lt;/a&gt; on the parleys site itself. Parleys is a fantastic Flex application, from the player that you watch the videos in to the publisher that they use to actually create these video/slide/demo-rich presentations. Nice work by Stephan Janssen (founder of Devoxx and Parleys.com) and Benjamin Dobler (developer of the Flex viewer and publisher).
&lt;/p&gt;
&lt;p&gt;
Enjoy...
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-2006869744631560563?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/2006869744631560563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=2006869744631560563' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/2006869744631560563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/2006869744631560563'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/03/devoxx-talk-posted-on-parleyscom-future.html' title='Devoxx Talk Posted on Parleys.com: &apos;The Future of Rich Internet Applications&apos;'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-539808079202521607</id><published>2009-02-25T12:22:00.001-08:00</published><updated>2009-02-25T12:30:01.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='mxml'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Video: Smarter Effects in Gumbo</title><content type='html'>&lt;p&gt;
Here's another video from &lt;a href="http://tv.adobe.com/#vi+f1472v1056"&gt;Adobe TV&lt;/a&gt;. In this one, I'm showing a couple of applications that demonstrate some of the intelligence that we're building into the new effects in Gumbo (the codename for the next release of Flex). Specifically, these demos show some of the new automatic behavior of the Fade effect and the new "autoReverse" capability of transitions.
&lt;/p&gt;
&lt;p&gt;
As with any Gumbo demos, you should not get too locked into the specific APIs, since we're still very much mid-development. For example, all of the effects currently have an "Fx" prefix in the classnames which should be going away soon. But the point of the applications is to show the functionality and behavior of the effects, which is here to stay.
&lt;/p&gt;
&lt;p&gt;
I should/will post the code and applications soon, but my workspace is a bit torn up at the moment, since I'm in the middle of more cool-o effects features. As soon as that's cleared up, I'll update this post to have the code available. Meanwhile, grab the popcorn, sit back, and enjoy all 6 minutes and 8 seconds of:
&lt;/p&gt;
&lt;p&gt;
&lt;div style="text-align: center;"&gt;
&lt;/div&gt;&lt;embed src="http://tv.adobe.com/Embed.swf" bgcolor="#000000" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9hZGNfcHJlc2VudHMvNjRfYWRjXzA5MS5mbHY/cnNzX2ZlZWRpZD0xNDcyJnhtbHZlcnM9Mg==&amp;amp;w=600&amp;amp;t=http://tv.adobe.com/#vi+f1472v1056&amp;amp;h=385" height="385" width="600"&gt;&lt;/embed&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-539808079202521607?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/539808079202521607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=539808079202521607' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/539808079202521607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/539808079202521607'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/02/video-smarter-effects-in-gumbo.html' title='Video: Smarter Effects in Gumbo'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-7470239325981769107</id><published>2009-02-17T11:26:00.000-08:00</published><updated>2009-02-17T11:34:16.451-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='actionscript'/><title type='text'>AS34J1</title><content type='html'>&lt;a href="http://www.javaworld.com/"&gt;JavaWorld&lt;/a&gt; has just published Part 1 of a two part article entitled &lt;a href="http://www.javaworld.com/javaworld/jw-02-2009/jw-02-actionscript1.html"&gt;ActionScript for Java Developers&lt;/a&gt; (though I prefer the more unparsable name AS34J). It's based on a presentation that &lt;a href="http://www.jamesward.com/"&gt;James Ward&lt;/a&gt; and I did at the &lt;a href="http://devoxx.com/"&gt;Devoxx&lt;/a&gt; conference in December, walking through various aspects of similarity and differences between Java and AS3. The point is not to promote one language or platform over the other, but rather to take a closer look at AS3 with Java-tinted glasses. Enjoy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-7470239325981769107?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/7470239325981769107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=7470239325981769107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/7470239325981769107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/7470239325981769107'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/02/as34j1.html' title='AS34J1'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6843566830671277353.post-4698720617450428953</id><published>2009-02-13T07:24:00.000-08:00</published><updated>2009-02-25T12:32:20.324-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Really Live Cycle Data Services</title><content type='html'>&lt;p&gt;
I don't usually go in for PR announcements here; I figure that kind of stuff is covered pretty well in other places. But I had to mention this one that I just saw:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://biz.yahoo.com/bw/090213/20090212006514.html?.v=1"&gt;Amgen Tour of California Leverages Adobe Flash Platform&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Apparently, the race will be streamed live over the web using Flash.
&lt;/p&gt;
&lt;p&gt;
Pretty excellent, but my favorite part is the product name of the Adobe server software that's helping to enable it: "&lt;span style="font-weight: bold;"&gt;Live Cycle&lt;/span&gt; Data Services"
&lt;/p&gt;
&lt;p&gt;
Perfect.
&lt;/p&gt;
&lt;p&gt;
It's like Flash being used for photography, or Flex for applications in the rubber industry, or AIR applications for atmospheric monitoring. I'll be on the lookout for more product name-appropriate partnerships. Brand reinforcement is so critical.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6843566830671277353-4698720617450428953?l=graphics-geek.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://graphics-geek.blogspot.com/feeds/4698720617450428953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6843566830671277353&amp;postID=4698720617450428953' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4698720617450428953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6843566830671277353/posts/default/4698720617450428953'/><link rel='alternate' type='text/html' href='http://graphics-geek.blogspot.com/2009/02/really-live-cycle-data-services.html' title='Really Live Cycle Data Services'/><author><name>Chet Haase</name><uri>http://www.blogger.com/profile/03250991041464602854</uri><email>graphicsgeek1@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16932453391664749588'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>