<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>hydrotik &#124; flash development / design / photography</title>
	<link>http://blog.hydrotik.com</link>
	<description>flash development and creative playground of Donovan Adams</description>
	<pubDate>Thu, 15 May 2008 18:09:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Go 0.4.8jg1 + HydroTween rev30 + Guide + Source Code</title>
		<link>http://blog.hydrotik.com/2008/05/13/go-048jg1-hydrotween-rev30-guide-source-code/</link>
		<comments>http://blog.hydrotik.com/2008/05/13/go-048jg1-hydrotween-rev30-guide-source-code/#comments</comments>
		<pubDate>Wed, 14 May 2008 01:39:12 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[Flashbelt 08]]></category>

		<category><![CDATA[GO]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2008/05/13/go-048jg1-hydrotween-rev30-guide-source-code/</guid>
		<description><![CDATA[The latest rev is 31. I have added the changes to this document in addition to the other updates.
Update 31d Fixed a bug from the removal of OverlapMonitor. Thanks John!

// Color Tweening!
HydroTween.go&#40;mc, &#123;color:0xFF0000&#125;, 2, 0, Elastic.easeOut&#41;;
// Fuse style sequencing!
var seq1:SequenceCA = HydroTween.parseSequence&#40;
&#160; &#160; &#160; &#160; &#123;target:fusebox, x:320, seconds:5, easing:Quadratic.easeInOut&#125;,
&#160; &#160; &#160; &#160; &#123;target:fusebox, Blur_blurX:8, Blur_blurY:8, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The latest rev is 31. I have added the changes to this document in addition to the other updates.</strong></p>
<p><strong>Update 31d</strong> Fixed a bug from the removal of OverlapMonitor. Thanks John!</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Color Tweening!</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span><span class="kw3">color</span>:0xFF0000<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">// Fuse style sequencing!</span><br />
<span class="kw2">var</span> seq1:SequenceCA = HydroTween.<span class="me1">parseSequence</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, x:<span class="nu0">320</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, Blur_blurX:<span class="nu0">8</span>, Blur_blurY:<span class="nu0">8</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, <span class="kw3">color</span>:0&#215;0000FF, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, Blur_blurX:<span class="nu0">0</span>, Blur_blurY:<span class="nu0">0</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, x:<span class="nu0">400</span>, seconds:.<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, rotation:<span class="nu0">270</span>, seconds:.<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span><br />
<span class="br0">&#41;</span>;<br />
seq1.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</div>
<p>After a short hiatus from the blog, and a wedding, I&#8217;ve been able to knock out some much needed changes and additions to HydroTween. I&#8217;m excited about this because now I can move onto the fun stuff and I&#8217;ve started putting together a roadmap of sorts. Go has been picking up steam and examples have been popping up which is great to see. Most people seem to think there are two types of users of Go. The ones that simply want to tween away, have something functioning, and useful right away. The other types are interested in developing their own tweening system and animation utilities either for all around use or for specialized applications. I&#8217;m excited about the 3rd group which falls in the middle. These are the people that want the first, but find themselves becoming the latter just because of the Methodology of Go. I used to be in the first group for quite some time until Go came along and then I found myself thrown intro the world of tweening. I&#8217;ve been saying this for some time now, but the beauty of Go is that you might find yourself in the middle with very little effort. Once you it that point, consider yourself an addict. This post should help with a general understanding of HydroTween. I also hope this post will open some eyes to the idea of going it along and giving their own parser a shot. That said I will start with the usage of HydroTween and it&#8217;s updates, then I will follow with my own trial and tribulations of reaching this recent version. The example below along with the source is located at the end of this post.</p>
<p><a href="http://code.google.com/p/goasap/" target="_blank">Click here for the Go Project Site</a> - Go Project Site</p>
<p><a href="http://code.google.com/p/goplayground/wiki/HydroTween" target="_blank">Click here for the Go Playground Project Site</a> - Home of Parsers/User Generated Go projects and examples.</p>
<hr />
<p>
<object type="application/x-shockwave-flash" width="600" height="600">
<param name="movie" value="http://blog.hydrotik.com/wp-content/HydroTween_rev31.swf" />
<embed src="http://blog.hydrotik.com/wp-content/HydroTween_rev31.swf" type="application/x-shockwave-flash" width="600" height="600" >
</object>
</p>
<hr />
<p><strong>Current Tweenable Properties:</strong></p>
<ul>
<li>alpha</li>
<li>Bevel_angle</li>
<li>Bevel_blurX</li>
<li>Bevel_blurY</li>
<li>Bevel_color</li>
<li>Bevel_distance</li>
<li>Bevel_highlightAlpha</li>
<li>Bevel_highlightColor</li>
<li>Bevel_quality</li>
<li>Bevel_shadowAlpha</li>
<li>Bevel_shadowColor</li>
<li>Bevel_strength</li>
<li>Blur_blurX</li>
<li>Blur_blurY</li>
<li>Blur_quality</li>
<li>brightness</li>
<li>color</li>
<li>contrast</li>
<li>DropShadow_alpha</li>
<li>DropShadow_angle</li>
<li>DropShadow_blurX</li>
<li>DropShadow_blurY</li>
<li>DropShadow_color</li>
<li>DropShadow_distance</li>
<li>DropShadow_quality</li>
<li>DropShadow_strength</li>
<li>Glow_alpha</li>
<li>Glow_blurX</li>
<li>Glow_blurY</li>
<li>Glow_color</li>
<li>Glow_quality</li>
<li>Glow_strength</li>
<li>height</li>
<li>hue</li>
<li>pan</li>
<li>rotation</li>
<li>rotationX (PV3D)</li>
<li>rotationY (PV3D)</li>
<li>rotationZ (PV3D)</li>
<li>saturation</li>
<li>scaleX</li>
<li>scaleY</li>
<li>scaleZ (PV3D)</li>
<li>text</li>
<li>tint</li>
<li>volume</li>
<li>width</li>
<li>x</li>
<li>y</li>
<li>z (PV3D)</li>
</ul>
<p><strong>What&#8217;s new in this version:</strong></p>
<ul>
<li>Image/Bitmap/ColorMatrix property refactoring such as contrast, brightness, etc. Color tweening has been added as well. Worked out some bugs and streamlined.</li>
<li>Fuse style sequencing.</li>
<li>An autostart parameter.</li>
<li>Updated reverse and cycle structure.</li>
<li>Started porting over the previous textfield tweening functionality.</li>
<li>Tweening of multiple targets as Arrays</li>
<li>Papervision3D tweening functions</li>
</ul>
<p><strong>Autostart:</strong><br />
Autostart has been deprecated from version 30. In version 31, go calls() and sequence() methods start automatically. To setup a sequence that doesn&#8217;t start, use the parseSequence() method.</p>
<p><strong>LinearGoRepeater:</strong><br />
The static go() method and the constructor have been updated to reflect the changes in version 0.4.8. An object has been added that provides parameters for cycling back and forth. You can either input a LinearGoRepeater instance, or you can use a generic object.</p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc,&nbsp; tweenObj<span class="br0">&#91;</span><span class="kw3">e</span>.<span class="kw3">target</span>.<span class="kw3">name</span><span class="br0">&#93;</span>, seconds, <span class="nu0">0</span>, easing, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="br0">&#123;</span>cycles:<span class="nu0">2</span>, <span class="kw3">reverse</span>:<span class="kw2">true</span>, easing:easing<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</div>
<p><strong>Fuse style Sequence Tweening:</strong></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// This sequence will start automatically.</span><br />
<span class="kw2">var</span> seq1:SequenceCA = HydroTween.<span class="me1">sequence</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, x:<span class="nu0">320</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, Blur_blurX:<span class="nu0">8</span>, Blur_blurY:<span class="nu0">8</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, <span class="kw3">color</span>:0&#215;0000FF, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, Blur_blurX:<span class="nu0">0</span>, Blur_blurY:<span class="nu0">0</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, x:<span class="nu0">400</span>, seconds:.<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, rotation:<span class="nu0">270</span>, seconds:.<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span><br />
<span class="br0">&#41;</span>;<br />
<span class="co1">// This sequence will NOT start automatically. Allows you to create sequences and store them</span><br />
<span class="kw2">var</span> seq2:SequenceCA = HydroTween.<span class="me1">parseSequence</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, x:<span class="nu0">320</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, Blur_blurX:<span class="nu0">8</span>, Blur_blurY:<span class="nu0">8</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, <span class="kw3">color</span>:0&#215;0000FF, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, Blur_blurX:<span class="nu0">0</span>, Blur_blurY:<span class="nu0">0</span>, seconds:<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, x:<span class="nu0">400</span>, seconds:.<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw3">target</span>:fusebox, rotation:<span class="nu0">270</span>, seconds:.<span class="nu0">5</span>, easing:Quadratic.<span class="me1">easeInOut</span><span class="br0">&#125;</span><br />
<span class="br0">&#41;</span>;<br />
seq2.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</div>
<hr />
<h3>Tweening Examples:</h3>
<hr />
<p><strong>F.Y.I.</strong> The flash interface/example above will copy the code to the clipboard.</p>
<p><strong>General:</strong></p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>x:<span class="nu0">400</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p><strong>Filter:</strong></p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>Glow_color:0&#215;0000FF, Glow_blurX:<span class="nu0">8</span>, Glow_blurY:<span class="nu0">8</span>, Glow_strength:<span class="nu0">3</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p><strong>Image/Bitmap/ColorMatrix:</strong></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Brightness</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>brightness:<span class="nu0">2</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Contrast</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>contrast:<span class="nu0">2</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Hue</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>hue:<span class="nu0">45</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Saturation</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>saturation:-<span class="nu0">1</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Tint</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span>tint:0&#215;00FF00<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Color</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span><span class="kw3">color</span>:0xFF0000<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Color Reset (This will tween back to it&#8217;s original value</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc, <span class="br0">&#123;</span><span class="kw3">color</span>:-<span class="nu0">1</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>Matrix tweening (for array values such as sepia, etc) should make a return in the next update as well as a tint percentage value.</p>
<p><strong>Sound:</strong></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Volume</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>soundchannel, <span class="br0">&#123;</span>volume:.<span class="nu0">1</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;<br />
<span class="co1">// Contrast</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>soundchannel, <span class="br0">&#123;</span>pan:-<span class="nu0">1</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>Sound tweening takes the SoundChannel instance as a target.</p>
<p><strong>Text:</strong></p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">textfield</span>, <span class="br0">&#123;</span><span class="kw3">text</span>:<span class="nu0">100</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>This simply tweens the number from 0 to whatever param is specified and outputs to a textfield. I hope to expand on the functionality of this soon.</p>
<p><strong>Using Callbacks and Updaters:</strong></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Complete Callback</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">textfield</span>, <span class="br0">&#123;</span><span class="kw3">text</span>:<span class="nu0">100</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span>, onCompleteHandler<span class="br0">&#41;</span>;<br />
<span class="co1">// Update Callback</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">textfield</span>, <span class="br0">&#123;</span><span class="kw3">text</span>:<span class="nu0">100</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span>, <span class="kw2">null</span>, onUpdateHandler<span class="br0">&#41;</span>;</div>
</div>
<p><strong>Papervision3D Tweening:</strong></p>
<p>I have added a convenient function for setting up your renderer for HydroTween. This is called once before you call any tweens and runs the renderer during any tween.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Call once to setup a 3D tweens renderer</span><br />
HydroTween.<span class="me1">init3D</span><span class="br0">&#40;</span>renderer, scene, <span class="kw3">camera</span>, viewport<span class="br0">&#41;</span>;<br />
<span class="co1">// Simple Papervision3D Tween</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>plane, <span class="br0">&#123;</span>rotationX:<span class="nu0">100</span>, z:<span class="nu0">500</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>Also be sure to check out <a href="http://www.rockonflash.com/blog/?p=116" target="_blank">John Grden&#8217;s</a> kickass Go3D parser.</p>
<hr />
<p><strong>Roadmap and upcoming updates:</strong></p>
<ul>
<li>Text tweening to support prefix and suffix String values</li>
<li>Even more modular format for adding tweenable properties</li>
<li>Drawning and spline/bezier tweening/Catmull Rom/etc</li>
<li>Continuing with speed enhancements</li>
</ul>
<hr />
<h3>The Making of HydroTween</h3>
<hr />
<p>For those of you interested in setting up your own tweening parser, hopefully this section will offer some insight. Getting these updates was a bit of a challenge and I learned quite a bit. Because of this, I think my ultimate vision for HydroTween has changed a bit. With the flexibility Go offers, the task of how to manage tweens and properties falls in the hands of the Go practitioner. The efficiency of a tweening engine really boils down to the simplicity of it&#8217;s core and the reading and routing of updating property values. How this is achieved can explain the large number of different tweening systems out there. My hope is to eventually set up HydroTween to extend the open foundation of the Go system to it&#8217;s tweenable properties making them more modular and easy to tweek. Let&#8217;s forget about how the Go core engine works for a minute and look at the bare bones processes invloved in tweening.</p>
<ul>
<li>First we need some way to parse a syntax of our choosing.</li>
<li>We need to keep track of where/what the end result of our tween will be.</li>
<li>We need to figure out the starting value of the tween.</li>
<li>We need to figure out the difference of the starting and ending value.</li>
<li>We need to update the values of that difference over a period of time.</li>
<li>We need to route the updated values to the tweens target based on the type of property that&#8217;s being tweened.</li>
</ul>
<p>This is a very general idea of what&#8217;s going on here. Now some of the above has been taken out of the equation and/or made easier to accomplish. The parsing is being left up to us, along with how we store and route the updating property values. We have a place to figure out the starting point as well as where to update the data. The trick is how to do it.</p>
<p>I&#8217;ve found that most tweenable properties fall into a few categories:</p>
<p>Some are direct properties of an object, such as the x value of a Sprite.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Normal syntax:</span><br />
sprite.<span class="me1">x</span> = <span class="nu0">1</span>;<br />
<span class="co1">// &quot;Tweenable&quot; syntax:</span><br />
sprite<span class="br0">&#91;</span><span class="st0">&#8220;x&#8221;</span><span class="br0">&#93;</span> = <span class="nu0">1</span>;</div>
</div>
<p>Some are done through object&#8217;s filters, such as BlurFilter and DropShadow.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Normal syntax:</span><br />
<span class="kw2">var</span> gf:GlowFilter = <span class="kw2">new</span> GlowFilter<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
gf.<span class="kw3">color</span> = 0xFF0000;<br />
box.<span class="me1">filters</span> = <span class="br0">&#91;</span>gf<span class="br0">&#93;</span>;<br />
<span class="co1">// &quot;Tweenable&quot; syntax:</span><br />
box.<span class="me1">filters</span> = <span class="br0">&#91;</span><span class="kw2">new</span> GlowFilter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span>;<br />
<span class="kw2">var</span> f:<span class="kw3">Array</span> = box.<span class="me1">filters</span>;<br />
f<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8220;color&#8221;</span><span class="br0">&#93;</span> = 0&#215;0000FF;<br />
box.<span class="me1">filters</span> = f;</div>
</div>
<p>Some are done through a transform property, or a combination of transform properties, such as volume or some color changing.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">// Normal syntax:</span><br />
<span class="kw2">var</span> tf:* = targ.<span class="me1">soundTransform</span>;<br />
tf.<span class="me1">volume</span> = val;<br />
targ.<span class="me1">soundTransform</span> = tf;<br />
<span class="co1">// &quot;Tweenable&quot; syntax:</span><br />
<span class="kw2">var</span> tf:* = targ<span class="br0">&#91;</span><span class="st0">&#8220;soundTransform&#8221;</span><span class="br0">&#93;</span>;<br />
tf<span class="br0">&#91;</span><span class="st0">&#8220;volume&#8221;</span><span class="br0">&#93;</span> = val;<br />
targ<span class="br0">&#91;</span><span class="st0">&#8220;soundTransform&#8221;</span><span class="br0">&#93;</span> = tf;</div>
</div>
<p>The above examples are straight forward, but they point out the process of parsing. We are using a String reference to the Objects property which allows us to match it up in our property list. This is where we define our syntax and essentially becomes our &#8220;key&#8221;. Every key in our parser must be unique so we can match up a respective property. In the case of blurX, we have to specify that it is either the BlurFilter, GlowFilter, etc. So Blur_blurX is added to a key/property list which matches that property with the functions needed to update the BlurFilter and target in the Objects filter Array.</p>
<p>Some use a combination of Filter and Matrix math such as contrast, color, hue. Some use value pairs, such as drawing. The rest I have found use either a single or double value, along with some constants such as spline animation, text, etc. You can refer to the source for the more complicated examples as they require a couple extra steps. Just to give you the general idea. With ColorMatrix we are tweening an entire array of values. What HydroTween does is depending on the property settings, an &#8220;adjustment&#8221; function is called. This changes the end values for the array, and the write function updates the entire array from point A to B. Since an Object can have multiple ColorMatrix adjustments made to it, we need to call these first before running the tween. Thanks again to Grant Skinner for letting me import and tweek his ColorMatrix class.</p>
<p>All of these items are easy to tween in their own right, but when you combine them all together, that&#8217;s when things get tricky. I&#8217;ve organized my functions in a read, write, and for some an adjust and path category. &#8220;Read&#8221; simply gets the objects existing state, &#8220;write&#8221; updates the objects property value, &#8220;adjust&#8221; modifies a property prior to writing it (such as ColorMatrix transformations of a ColorMatrix Array before tweening it), and &#8220;path&#8221; is a param that accesses an objects property.</p>
<p>My goal now is to continue to make this more efficient and modular in a way that the average user can create a read function, a write function, and register it to the property list along with any additional params it might need. It&#8217;s sorta there, but there is much work to be done:)</p>
<p>I&#8217;m still no tweening Jedi and this is an ongoing work in progress. Any suggestions, complaints, and contributions are welcome.</p>
<p>Also I will be at Flashbelt. Hit me up if you are interested in meeting up. Looking forward to Moses&#8217; presentation!</p>
<hr />
<a href='/wp-content/HydroTween_rev31_048jg.zip' title='HydroTween rev31'>HydroTween rev31 Source and Example</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2008/05/13/go-048jg1-hydrotween-rev30-guide-source-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>QueueLoaderLite</title>
		<link>http://blog.hydrotik.com/2008/03/11/queueloaderlite/</link>
		<comments>http://blog.hydrotik.com/2008/03/11/queueloaderlite/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 15:19:08 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[QueueLoader]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2008/03/11/queueloaderlite/</guid>
		<description><![CDATA[Updated the code
I&#8217;ve stripped down some of the heavier features for an alternate &#8220;lite&#8221; version for those wishing a bare bones QueueLoader with low file size. QueueLoader will continue to thrive and there are some enhancements to the regular version that will be made shortly.
The lite version is focused exclusively on image and swf asset [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Updated the code</strong></p>
<p>I&#8217;ve stripped down some of the heavier features for an alternate &#8220;lite&#8221; version for those wishing a bare bones QueueLoader with low file size. QueueLoader will continue to thrive and there are some enhancements to the regular version that will be made shortly.</p>
<p>The lite version is focused exclusively on image and swf asset loading. Application Domain/Loader Context is still there so you can load other items within a swf and have access to its class references in the library. I will add another guide page on the Google page shortly. I&#8217;m including all the listening function in the example below just so you can see it in action, but any/all of them can be removed. More examples and documentation on this version to come, but in the meantime&#8230; Basic usage:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">utils</span>.<span class="me1">QueueLoaderLite</span>;<br />
<span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">utils</span>.<span class="me1">QueueLoaderLiteEvent</span>;</p>
<p>
<span class="kw2">var</span> qlLoader:QueueLoaderLite = <span class="kw2">new</span> QueueLoaderLite<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> imageContainer:Sprite = <span class="kw2">new</span> Sprite<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
addChild<span class="br0">&#40;</span>imageContainer<span class="br0">&#41;</span>;<br />
imageContainer.<span class="kw3">name</span> = <span class="st0">&#8220;image&#8221;</span>;</p>
<p>qlLoader.<span class="me1">addItem</span><span class="br0">&#40;</span><span class="st0">&#8220;../flashassets/images/slideshow/1.jpg&#8221;</span>, imageContainer, <span class="br0">&#123;</span>title:<span class="st0">&#8220;image&#8221;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</p>
<p>qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">QUEUE_START</span>, onQueueStart, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">ITEM_START</span>, onItemStart, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">ITEM_PROGRESS</span>, onItemProgress, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">ITEM_COMPLETE</span>, onItemComplete, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">ITEM_ERROR</span>, onItemError, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">QUEUE_PROGRESS</span>, onQueueProgress, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">QUEUE_COMPLETE</span>, onQueueComplete, <span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;</p>
<p>qlLoader.<span class="me1">execute</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">function</span> onQueueStart<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;** &#8220;</span>+event.<span class="kw3">type</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> onItemStart<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;&gt;&gt; &#8220;</span>+event.<span class="kw3">type</span>, <span class="st0">&#8220;item title: &#8220;</span>+event.<span class="me1">title</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> onItemProgress<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;<span class="es0">\t</span>&gt;&gt; &#8220;</span>+event.<span class="kw3">type</span>+<span class="st0">&#8220;: &#8220;</span>+<span class="br0">&#91;</span><span class="st0">&#8221; percentage: &#8220;</span>+event.<span class="me1">percentage</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> onItemComplete<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;&gt;&gt; name: &#8220;</span>+event.<span class="me1">title</span> + <span class="st0">&#8221; event:&#8221;</span> + event.<span class="kw3">type</span>+<span class="st0">&#8221; - &#8220;</span>+<span class="br0">&#91;</span><span class="st0">&#8220;target: &#8220;</span>+event.<span class="me1">targ</span>, <span class="st0">&#8220;w: &#8220;</span>+event.<span class="kw3">width</span>, <span class="st0">&#8220;h: &#8220;</span>+event.<span class="kw3">height</span><span class="br0">&#93;</span>+<span class="st0">&#8220;<span class="es0">\n</span>&#8220;</span><span class="br0">&#41;</span>;</p>
<p><span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> onItemError<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;&gt;&gt; name: &#8220;</span>+event.<span class="me1">title</span> + <span class="st0">&#8221; event:&#8221;</span> + event<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> onQueueProgress<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;<span class="es0">\t</span>&gt;&gt; &#8220;</span>+event.<span class="kw3">type</span>+<span class="st0">&#8220;: &#8220;</span>+<span class="br0">&#91;</span><span class="st0">&#8221; queuepercentage: &#8220;</span>+event.<span class="me1">queuepercentage</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> onQueueComplete<span class="br0">&#40;</span>event : QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;** &#8220;</span> + event.<span class="kw3">type</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
<p>And for instantiating library assets in an external swf library:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">utils</span>.<span class="me1">QueueLoaderLite</span>;<br />
<span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">utils</span>.<span class="me1">QueueLoaderEventLite</span>;</p>
<p><span class="kw2">var</span> addedDefinitions:LoaderContext = <span class="kw2">new</span> LoaderContext<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
addedDefinitions.<span class="me1">applicationDomain</span> = ApplicationDomain.<span class="me1">currentDomain</span>;</p>
<p><span class="kw2">var</span> qlLoader:QueueLoaderLite = <span class="kw2">new</span> QueueLoaderLite<span class="br0">&#40;</span><span class="kw2">false</span>, addedDefinitions<span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> soundSWF = <span class="kw2">new</span> <span class="kw3">MovieClip</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
soundSWF.<span class="kw3">name</span> = <span class="st0">&#8220;externalSounds&#8221;</span>;<br />
addChild<span class="br0">&#40;</span>soundSWF<span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> soundChannel:SoundChannel = <span class="kw2">new</span> SoundChannel<span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>qlLoader.<span class="me1">addItem</span><span class="br0">&#40;</span>prefix<span class="br0">&#40;</span><span class="st0">&#8220;&#8221;</span><span class="br0">&#41;</span> + <span class="st0">&#8220;flashassets/swf/externalsounds.swf&#8221;</span>, soundSWF<span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">addEventListener</span><span class="br0">&#40;</span>QueueLoaderLiteEvent.<span class="me1">QUEUE_COMPLETE</span>, onQueueComplete,<span class="kw2">false</span>, <span class="nu0">0</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;<br />
qlLoader.<span class="me1">execute</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</p>
<p>
<span class="kw2">function</span> onQueueComplete<span class="br0">&#40;</span>event:QueueLoaderLiteEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;** &#8220;</span>+event.<span class="kw3">type</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> Loop1Reference:<span class="kw2">Class</span> = getDefinitionByName<span class="br0">&#40;</span><span class="st0">&#8220;Loop1&#8243;</span><span class="br0">&#41;</span> as <span class="kw2">Class</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> loop1:<span class="kw3">Sound</span> = <span class="kw2">new</span> Loop1Reference<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; soundChannel = loop1.<span class="kw3">play</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
<hr />
<a href='http://blog.hydrotik.com/wp-content/queueloaderlite_src.zip' title='QueueLoaderLite Source'>QueueLoaderLite Source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2008/03/11/queueloaderlite/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Go 0.4.4 + HydroTween + Guide + Source Code</title>
		<link>http://blog.hydrotik.com/2008/02/27/go-044-hydrotween-guide-source-code/</link>
		<comments>http://blog.hydrotik.com/2008/02/27/go-044-hydrotween-guide-source-code/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 20:50:54 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[GO]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2008/02/27/go-044-hydrotween-guide-source-code/</guid>
		<description><![CDATA[





The example above is included in the source at the bottom of the post.
Continuing with the adventure that is Go, I have added tinting, brightness, contrast, hue, saturation, and a lineTo feature. Grant Skinner was kind enough to let me peel some code from his ColorMatrix class. Just to reiterate, I am not a tweening [...]]]></description>
			<content:encoded><![CDATA[<p>
<object type="application/x-shockwave-flash" width="600" height="600">
<param name="movie" value="http://blog.hydrotik.com/wp-content/hydrotween.swf" />
<embed src="http://blog.hydrotik.com/wp-content/hydrotween.swf" type="application/x-shockwave-flash" width="600" height="600" >
</object>
</p>
<p><strong>The example above is included in the source at the bottom of the post.</strong></p>
<p>Continuing with the adventure that is Go, I have added tinting, brightness, contrast, hue, saturation, and a lineTo feature. Grant Skinner was kind enough to let me peel some code from his <a href="http://www.gskinner.com/blog/archives/2007/12/colormatrix_upd.html" target="_blank">ColorMatrix</a> class. Just to reiterate, I am not a tweening guru. I have an increased respect for people such as <a href="http://go.mosessupposes.com/?p=28/" target="_blank">Moses</a>, <a href="http://www.boostworthy.com/blog/?p=228" target="_blank">Ryan Taylor</a>, <a href="http://blog.greensock.com/tweenliteas3/" target="_blank">Jack Doyle</a>, <a href="http://labs.zeh.com.br/blog/?p=127" target="_blank">Zeh Fernando</a>, and anyone else crazy enough to enter the world of tweening. Tweening engines become incredibly complicated when you start dealing with how properties are organized and how to get the most speed out of the system. That being said I think it is a testament to the Go architecture that I was able to get such a universal tweening class running on Go in such a short time. I should also state that HydroTween is not a tweening engine. HydroTween sits on top of Go and simply allows you to create your own syntax and system for parsing the properties you wish to tween.</p>
<p>I know there is a mad race with who has the fastest tweening system and even more so since the release of <a href="http://go.mosessupposes.com/?p=5" target="_blank">TweenBencher</a>. I&#8217;m sure the #1 spot will continue to change. This is great as it will push the most out of every system. Because of the way Go is set up, anyone can enter. I&#8217;ve set up HydroTween so it uses syntax similar to Zigo/Fuse with a couple tweaks. HydroTween doesn&#8217;t have sequencing capabilities yet, but that will come soon along with start properties and property overlap. I put together an example above and the list below of how to use HydroTween with its current properties.</p>
<p>If you&#8217;ve played with HydroTween before, I&#8217;ve taken the liberty of slightly changing the property key structure by doing away with leading underscores in keeping with AS3&#8217;s format. I&#8217;ve also grouped contrast, matrix, brightness, hue, and saturation into it&#8217;s own object. Here&#8217;s a simple code example of how HydroTween currently works:</p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x:<span class="nu0">400</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y:<span class="nu0">150</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scaleX:.<span class="nu0">6</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scaleY:.<span class="nu0">6</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; image<span class="br0">&#123;</span>contrast:<span class="nu0">2</span>, saturation:<span class="nu0">50</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DropShadow_strength:<span class="nu0">1</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DropShadow_distance:<span class="nu0">16</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rotation:<span class="nu0">270</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="nu0">2</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>The guide above shows most of the features in HydroTween. When you tween an example, the code is pasted into system memory in case you want to</p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>copy_tf,&nbsp; <span class="br0">&#123;</span>alpha:<span class="nu0">1</span><span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeInOut</span><span class="br0">&#41;</span>;</p>
<p>
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">target</span>, <span class="co1">// Target DisplayObject</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; propsToObject, <span class="co1">// {x:10, y:10} Contains the tweening properties and values</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; seconds, <span class="co1">// tweening duration in seconds</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; delay, <span class="co1">// tweening start delay in seconds</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; easingFunction, <span class="co1">// Easing function i.e. Quadratic.easeOut</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; onCompleteHandler, <span class="co1">// Function called when tween completes</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; onUpdateHandler, <span class="co1">// Function called on each update i.e. a screen rendering function</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; extraEasingParams, <span class="co1">// Additional arameters for the easing function</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; loopCycles, <span class="co1">// Number of times the Tween plays back and forth</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; cycleEasing <span class="co1">// Easing function for the additional cycles</span><br />
<span class="br0">&#41;</span>;</p>
<p>
<span class="coMULTI">/*<br />
Filter Properties:<br />
Bevel_angle<br />
Bevel_blurX<br />
Bevel_blurY<br />
Bevel_color<br />
Bevel_distance<br />
Bevel_highlightAlpha<br />
Bevel_highlightColor<br />
Bevel_quality<br />
Bevel_shadowAlpha<br />
Bevel_shadowColor<br />
Bevel_strength<br />
Blur_blurX<br />
Blur_blurY<br />
Blur_quality<br />
DropShadow_alpha<br />
DropShadow_angle<br />
DropShadow_blurX<br />
DropShadow_blurY<br />
DropShadow_color<br />
DropShadow_distance<br />
DropShadow_quality<br />
DropShadow_strength<br />
Glow_alpha<br />
Glow_blurX<br />
Glow_blurY<br />
Glow_color<br />
Glow_quality<br />
Glow_strength<br />
*/</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>copy_tf,&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; Glow_color:0&#215;00FF00,<br />
&nbsp; &nbsp; &nbsp; &nbsp; Glow_blurX:<span class="nu0">8</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; Glow_blurY:<span class="nu0">8</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; Glow_alpha:<span class="nu0">1</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; Glow_strength:<span class="nu0">3</span><br />
<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeInOut</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*<br />
Transform Properties:<br />
{prop:value &#8230;}<br />
volume<br />
pan<br />
*/</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">sound</span>,&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; volume:<span class="nu0">0</span><br />
<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*<br />
Tint Properties:<br />
{tint:{prop:value &#8230;}}<br />
color<br />
percent<br />
*/</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc,&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; tint:<span class="br0">&#123;</span><span class="kw3">color</span>:0xFF0000, percent:.<span class="nu0">9</span><span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*<br />
Image Processing Properties:<br />
{image{prop:value &#8230;}}<br />
matrix<br />
brightness<br />
contrast<br />
saturation<br />
hue<br />
*/</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc,&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; image:<span class="br0">&#123;</span>brightness:<span class="nu0">1</span>, contrast:.<span class="nu0">9</span><span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*<br />
Text Properties:<br />
{text{prop:value &#8230;}}<br />
text<br />
text_prepend<br />
text_append<br />
*/</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">textfield</span>,&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; text_prepend:<span class="st0">&#8220;VOTES: &#8220;</span>, <span class="co1">// String that comes before tweening number</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">text</span>:<span class="nu0">1000</span> <span class="co1">// A number that is tweened within the string</span><br />
<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*<br />
Line Properties:<br />
{lineTo{prop:value &#8230;}}<br />
x<br />
y<br />
thickness<br />
color<br />
*/</span><br />
HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">textfield</span>,&nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">lineTo</span>:<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x:<span class="nu0">580</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thickness:<span class="nu0">2</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">color</span>:0xFF0000<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">2</span>, Quartic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<hr />
<a href='http://blog.hydrotik.com/wp-content/hydrotween_0_4_4.zip' title='HydroTween 0.4.4 Source and Example'>HydroTween 0.4.4 Source and Example</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2008/02/27/go-044-hydrotween-guide-source-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Go 0.4.3 + HydroTween</title>
		<link>http://blog.hydrotik.com/2008/02/23/hydrotween-go-043/</link>
		<comments>http://blog.hydrotik.com/2008/02/23/hydrotween-go-043/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 03:06:21 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[GO]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2008/02/23/hydrotween-go-043/</guid>
		<description><![CDATA[Check the most recent Go Post for updates
Made some updates to HydroTween as well as embarked on a number of extras. Below is the updated special properties tween list:

&#8220;Bevel_angle&#8221;,
&#8220;Bevel_blurX&#8221;,
&#8220;Bevel_blurY&#8221;,
&#8220;Bevel_color&#8221;,
&#8220;Bevel_distance&#8221;,
&#8220;Bevel_highlightAlpha&#8221;,
&#8220;Bevel_highlightColor&#8221;,
&#8220;Bevel_quality&#8221;,
&#8220;Bevel_shadowAlpha&#8221;,
&#8220;Bevel_shadowColor&#8221;,
&#8220;Bevel_strength&#8221;,
&#8220;Blur_blurX&#8221;,
&#8220;Blur_blurY&#8221;,
&#8220;Blur_quality&#8221;,
&#8220;DropShadow_alpha&#8221;,
&#8220;DropShadow_angle&#8221;,
&#8220;DropShadow_blurX&#8221;,
&#8220;DropShadow_blurY&#8221;,
&#8220;DropShadow_color&#8221;,
&#8220;DropShadow_distance&#8221;,
&#8220;DropShadow_quality&#8221;,
&#8220;DropShadow_strength&#8221;,
&#8220;Glow_alpha&#8221;,
&#8220;Glow_blurX&#8221;,
&#8220;Glow_blurY&#8221;,
&#8220;Glow_color&#8221;,
&#8220;Glow_quality&#8221;,
&#8220;Glow_strength&#8221;
&#8220;_volume&#8221;,
&#8220;_pan&#8221;
&#8220;_text&#8221;
&#8220;_tint&#8221; // _tint:{tint:0xFF0000, percent:.8} 
&#160;

Here&#8217;s a tweening syntax example:

HydroTween.go&#40;mc,
&#123;
&#160; &#160; &#160; &#160; x:400,
&#160; &#160; &#160; &#160; y:150,
&#160; &#160; &#160; &#160; scaleX:2,
&#160; &#160; &#160; &#160; scaleY:2,
&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Check the most recent Go Post for updates</strong></p>
<p>Made some updates to HydroTween as well as embarked on a number of extras. Below is the updated special properties tween list:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="st0">&#8220;Bevel_angle&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_blurX&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_blurY&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_color&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_distance&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_highlightAlpha&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_highlightColor&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_quality&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_shadowAlpha&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_shadowColor&#8221;</span>,<br />
<span class="st0">&#8220;Bevel_strength&#8221;</span>,</p>
<p><span class="st0">&#8220;Blur_blurX&#8221;</span>,<br />
<span class="st0">&#8220;Blur_blurY&#8221;</span>,<br />
<span class="st0">&#8220;Blur_quality&#8221;</span>,</p>
<p><span class="st0">&#8220;DropShadow_alpha&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_angle&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_blurX&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_blurY&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_color&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_distance&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_quality&#8221;</span>,<br />
<span class="st0">&#8220;DropShadow_strength&#8221;</span>,</p>
<p><span class="st0">&#8220;Glow_alpha&#8221;</span>,<br />
<span class="st0">&#8220;Glow_blurX&#8221;</span>,<br />
<span class="st0">&#8220;Glow_blurY&#8221;</span>,<br />
<span class="st0">&#8220;Glow_color&#8221;</span>,<br />
<span class="st0">&#8220;Glow_quality&#8221;</span>,<br />
<span class="st0">&#8220;Glow_strength&#8221;</span></p>
<p><span class="st0">&#8220;_volume&#8221;</span>,<br />
<span class="st0">&#8220;_pan&#8221;</span><br />
<span class="st0">&#8220;_text&#8221;</span><br />
<span class="st0">&#8220;_tint&#8221;</span> <span class="co1">// _tint:{tint:0xFF0000, percent:.8} </span><br />
&nbsp;</div>
</div>
<p>Here&#8217;s a tweening syntax example:</p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc,<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; x:<span class="nu0">400</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; y:<span class="nu0">150</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; scaleX:<span class="nu0">2</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; scaleY:<span class="nu0">2</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; _tint:<span class="br0">&#123;</span>tint:0xFF0000, percent:<span class="nu0">1</span><span class="br0">&#125;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; DropShadow_strength:<span class="nu0">1</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; DropShadow_distance:<span class="nu0">16</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; Blur_blurX:<span class="nu0">8</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; Blur_blurY:<span class="nu0">8</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; rotation:<span class="nu0">180</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; alpha:<span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="br0">&#125;</span>, <span class="nu0">4</span>, <span class="nu0">1</span>, Bounce.<span class="me1">easeOut</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="nu0">2</span>, Bounce.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>_brightness, _saturation, _hue, _contrast are next on my list.  I&#8217;ve had them working in some form here and there, but the problem I need to get around is when you are tweening more then one of those properties at once. I&#8217;m no tweening guru, so this has been an educational experience. I also started and got results with a _lineTo, but want to get the  _curveTo done before releasing it.</p>
<p>HydroTween and Go have successfully consumed my actionscript life again for the last week. I need to get back to some projects that I have procrastinated on:) I am proud to say that I&#8217;ve already used HydroTween/Go on commercial projects and current work.</p>
<hr />
<a href='http://blog.hydrotik.com/wp-content/hydrotween_0_4_4.zip' title='HydroTween 0.4.4 Source and Example'>HydroTween 0.4.4 Source and Example</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2008/02/23/hydrotween-go-043/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Go 0.4.1 + HydroTween</title>
		<link>http://blog.hydrotik.com/2008/02/21/go-041-hydrotween/</link>
		<comments>http://blog.hydrotik.com/2008/02/21/go-041-hydrotween/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 14:28:24 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[GO]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2008/02/21/go-041-hydrotween/</guid>
		<description><![CDATA[Check the most recent Go post for updates
It&#8217;s still in it&#8217;s infancy, but I&#8217;ve made some progress with HydoTween after working with Moses on some different direction with Go over the weekend. During the R&#038;D process with him, I took a little of what we did and merged it into HydroTween. Because Go is still [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Check the most recent Go post for updates</strong></p>
<p>It&#8217;s still in it&#8217;s infancy, but I&#8217;ve made some progress with HydoTween after working with Moses on some different direction with Go over the weekend. During the R&#038;D process with him, I took a little of what we did and merged it into HydroTween. Because Go is still very new and still evolving, it&#8217;s very likely that HydroTween will evolve quickly as well. I haven&#8217;t fully tested multiple targets in an array yet, but on individual tweens I&#8217;ve been able to add a number of tweenable features. Also with the help of <a href="http://gskinner.com/blog/archives/2005/09/flash_8_source.html" target="blank">Grant Skinner&#8217;s ColorMatrix class</a>, I&#8217;ve added image tweening capability. </p>
<p>Here&#8217;s an example of using HydroTween. Should be somehwat familiar to Fuse/Zigo users:</p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span>mc,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x:<span class="nu0">400</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y:<span class="nu0">150</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scaleX:.<span class="nu0">6</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scaleY:.<span class="nu0">6</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _contrast:<span class="nu0">50</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _saturation:<span class="nu0">50</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DropShadow_strength:<span class="nu0">1</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DropShadow_distance:<span class="nu0">16</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rotation:<span class="nu0">360</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_alpha:.<span class="nu0">5</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alpha:<span class="nu0">1</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scaleX:<span class="nu0">5</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scaleY:<span class="nu0">5</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>, <span class="nu0">2</span>, <span class="nu0">0</span>, Elastic.<span class="me1">easeOut</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="kw2">null</span>, <span class="nu0">2</span>, Elastic.<span class="me1">easeOut</span><span class="br0">&#41;</span>;</div>
</div>
<p>Here&#8217;s the current list of tweenable items in addition to the basic props (x,y,alpha, etc). This is still in beta so lemme know if there are problems.</p>
<p>&#8220;Bevel_angle&#8221;,<br />
&#8220;Bevel_blurX&#8221;,<br />
&#8220;Bevel_blurY&#8221;,<br />
&#8220;Bevel_color&#8221;,<br />
&#8220;Bevel_distance&#8221;,<br />
&#8220;Bevel_highlightAlpha&#8221;,<br />
&#8220;Bevel_highlightColor&#8221;,<br />
&#8220;Bevel_quality&#8221;,<br />
&#8220;Bevel_shadowAlpha&#8221;,<br />
&#8220;Bevel_shadowColor&#8221;,<br />
&#8220;Bevel_strength&#8221;,</p>
<p>&#8220;Blur_blurX&#8221;,<br />
&#8220;Blur_blurY&#8221;,<br />
&#8220;Blur_quality&#8221;,</p>
<p>&#8220;DropShadow_alpha&#8221;,<br />
&#8220;DropShadow_angle&#8221;,<br />
&#8220;DropShadow_blurX&#8221;,<br />
&#8220;DropShadow_blurY&#8221;,<br />
&#8220;DropShadow_color&#8221;,<br />
&#8220;DropShadow_distance&#8221;,<br />
&#8220;DropShadow_quality&#8221;,<br />
&#8220;DropShadow_strength&#8221;,</p>
<p>&#8220;Glow_alpha&#8221;,<br />
&#8220;Glow_blurX&#8221;,<br />
&#8220;Glow_blurY&#8221;,<br />
&#8220;Glow_color&#8221;,<br />
&#8220;Glow_quality&#8221;,<br />
&#8220;Glow_strength&#8221;</p>
<p>&#8220;Sound_volume&#8221;,<br />
&#8220;Sound_pan&#8221;</p>
<p>&#8220;_brightness&#8221;,<br />
&#8220;_contrast&#8221;,<br />
&#8220;_saturation&#8221;,<br />
&#8220;_hue&#8221;</p>
<p>I will probably change the sound tweening keys at some point, but you get the idea:)</p>
<p>Next on the list are start props, or what Moses and I discussed as tween &#8220;const&#8221; variables. Items that are params but aren&#8217;t necessarily tweenable. Such as quality, filter colors in some instances, etc.</p>
<p>Also I&#8217;ve been out of the Papervision3D loop since xmas, but I&#8217;m looking to jump back onto that. I&#8217;ll have to see if the the guys have made progress on tweening DisplayObject3D with the new version yet.</p>
<p>Go has been progressing quickly as of late. I will begin to post my progress here as well as add HydroTween to the svn at some point.</p>
<p><a href="http://www.goasap.org/" target="_blank">Click here to go to Go, and be sure to sign up for the mailing list!</a></p>
<hr />
<a href='http://blog.hydrotik.com/wp-content/hydrotween_0_4_4.zip' title='HydroTween 0.4.4 Source and Example'>HydroTween 0.4.4 Source and Example</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2008/02/21/go-041-hydrotween/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Corey Delaney errr Worthington New T-Shirts!</title>
		<link>http://blog.hydrotik.com/2008/01/15/new-t-shirts/</link>
		<comments>http://blog.hydrotik.com/2008/01/15/new-t-shirts/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 22:12:08 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2008/01/15/new-t-shirts/</guid>
		<description><![CDATA[Gonna make some t-shirts out of this!

Get the T-Shirts here!


You-Tube Video
Mr. Corey Delaney, or Corey Worthington&#8230; Gotta love this guy.
]]></description>
			<content:encoded><![CDATA[<p>Gonna make some t-shirts out of this!<br />
<a href="http://www.cafepress.com/hydrotik" target="_blank"><br />
<h2>Get the T-Shirts here!</h2>
<p><img src='http://blog.hydrotik.com/wp-content/corey_sm1.gif' alt='tshirts' /></p>
<p></a></p>
<p><a href="http://www.youtube.com/watch?v=X2EDtxEumFI" target="_blank">You-Tube Video</a></p>
<p>Mr. Corey Delaney, or Corey Worthington&#8230; Gotta love this guy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2008/01/15/new-t-shirts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AS3 Tweening + Go + HydroTween rev 0.3.1</title>
		<link>http://blog.hydrotik.com/2007/12/20/as3-tweening-go-hydrotween-rev-031/</link>
		<comments>http://blog.hydrotik.com/2007/12/20/as3-tweening-go-hydrotween-rev-031/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 02:35:38 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[GO]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2007/12/20/as3-tweening-go-hydrotween-rev-031/</guid>
		<description><![CDATA[Here&#8217;s my latest tweening module for Go called HydroTween. Using HydroTween with the Go system is as easy as:

HydroTween.go&#40;target, &#123;width:760&#125;, .8, 0, Exponential.easeInOut, onCompleteHandler&#41;;

Be sure to go to goasap.org to get the Go source.

HydroTween Source
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s my latest tweening module for Go called HydroTween. Using HydroTween with the Go system is as easy as:</p>
<div class="codesnip-container" >
<div class="codesnip">HydroTween.<span class="me1">go</span><span class="br0">&#40;</span><span class="kw3">target</span>, <span class="br0">&#123;</span><span class="kw3">width</span>:<span class="nu0">760</span><span class="br0">&#125;</span>, .<span class="nu0">8</span>, <span class="nu0">0</span>, Exponential.<span class="me1">easeInOut</span>, onCompleteHandler<span class="br0">&#41;</span>;</div>
</div>
<p>Be sure to go to <a href="http://www.goasap.org" target="_blank">goasap.org</a> to get the Go source.</p>
<hr />
<a href='http://blog.hydrotik.com/wp-content/hydrotween_source_rev_031.zip' title='HydroTween Source'>HydroTween Source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2007/12/20/as3-tweening-go-hydrotween-rev-031/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AS3 + HTML Text +  tags</title>
		<link>http://blog.hydrotik.com/2007/12/19/as3-html-text-tags/</link>
		<comments>http://blog.hydrotik.com/2007/12/19/as3-html-text-tags/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 17:46:54 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2007/12/19/as3-html-text-tags/</guid>
		<description><![CDATA[I discovered a few things when trying to add img tags to html content on a site I have been working on. Mabye this is common knowledge, but I thought I&#8217;d share my experience since I had a hard time getting anymore info on it.



Nesting an &#60;a href&#62; tag around an &#60;img&#62; tag doesn&#8217;t work.


When [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered a few things when trying to add img tags to html content on a site I have been working on. Mabye this is common knowledge, but I thought I&#8217;d share my experience since I had a hard time getting anymore info on it.</p>
<ol>
<li>
<div class="codesnip-container" >
<div class="codesnip">Nesting an <span class="sc2"><a href="http://december.com/html/4/element/a.html"><span class="kw2">&lt;a</span></a> href&gt;</span> tag around an <span class="sc2"><a href="http://december.com/html/4/element/img.html"><span class="kw2">&lt;img&gt;</span></a></span> tag doesn&#8217;t work.</div>
</div>
</li>
<li>When you embed an image into text using the img tag the image is added to the TextField&#8217;s DisplayList. For example if you embed an image in the TextField &#8220;contentfield&#8221;, it&#8217;s the same as doing contentfield.addChild(htmlImage); Which brings me to&#8230;</li>
<li>The TextField has a method called getImageReference(id:String):DisplayObject; Basically this method returns the DisplayObject or image that is contained within a given TextField. This is great, but I noticed it only works when there is one image in a TextField. If someone can confirm this, that would be great.</li>
</ol>
<p>Basically I wanted to link the embedded images in my TextField so the popup a larger version of the image. Simple enough, yet when I wrapped the img tag with an href, the outside of the image would show the hand cursor, but the image wouldn&#8217;t link. Now if the parent of the img is the TextField, then wouldn&#8217;t it make sense to have numChildren as a TextField Method? Then I could loop through the children of the text field and create buttons. I&#8217;ve made this request to Adobe, and so far they have been receptive to the idea. Hopefully this will get passed through.</p>
<p>I did however, come up with another way to dynamically load images into a TextField. When loading a swf into a TextField using the img tag you can set the instance name of that swf using the id attribute. I use this id attribute to pass the path to the image, as well as an image id that is passed into the popup window that loads the larger image. Here&#8217;s an example of the html source that is passed into the TextField.</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="sc2"><a href="http://december.com/html/4/element/img.html"><span class="kw2">&lt;img</span></a> <span class="kw3">src</span>=<span class="st0">&#8220;thumb.swf&#8221;</span> <span class="kw3">id</span>=<span class="st0">&#8220;../flashassets/images/slideshow/2_sm.jpg,2_sm.jpg&#8221;</span> /<span class="kw2">&gt;</span></a></span></div>
</div>
<p>I separate the two parameters using a comma which are String split in the thumb.swf. Here&#8217;s the code in the thumb.swf:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">this</span>.<span class="me1">parent</span>.<span class="kw3">name</span> != <span class="kw2">null</span><span class="br0">&#41;</span> <span class="kw2">var</span> results:<span class="kw3">Array</span> = <span class="kw3">this</span>.<span class="me1">parent</span>.<span class="kw3">name</span>.<span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">&#8220;,&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; <br />
<span class="kw2">var</span> imagepath:<span class="kw3">String</span> = <span class="br0">&#40;</span><span class="kw3">this</span>.<span class="me1">parent</span>.<span class="kw3">name</span> == <span class="kw2">null</span><span class="br0">&#41;</span> ? <span class="st0">&#8220;../flashassets/images/slideshow/1_sm.jpg&#8221;</span> : results<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
<span class="kw2">var</span> link:<span class="kw3">String</span> = <span class="br0">&#40;</span><span class="kw3">this</span>.<span class="me1">parent</span>.<span class="kw3">name</span> == <span class="kw2">null</span><span class="br0">&#41;</span> ? <span class="st0">&#8220;http://www.google.com&#8221;</span> : results<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</p>
<p><span class="kw2">var</span> image:Sprite = <span class="kw2">new</span> Sprite<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
image.<span class="kw3">useHandCursor</span> = image.<span class="me1">buttonMode</span> = image.<span class="me1">mouseEnabled</span> = <span class="kw2">true</span>;<br />
image.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, onClick<span class="br0">&#41;</span>;</p>
<p><span class="kw3">this</span>.<span class="me1">addChild</span><span class="br0">&#40;</span>image<span class="br0">&#41;</span>;<br />
<span class="kw2">var</span> loader:Loader = <span class="kw2">new</span> Loader<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="kw2">var</span> request:URLRequest = <span class="kw2">new</span> URLRequest<span class="br0">&#40;</span>imagepath<span class="br0">&#41;</span>;<br />
loader.<span class="kw3">load</span><span class="br0">&#40;</span>request<span class="br0">&#41;</span>;<br />
image.<span class="me1">addChild</span><span class="br0">&#40;</span>loader<span class="br0">&#41;</span>;</p>
<p><span class="kw2">var</span> <span class="kw3">border</span>:Sprite = <span class="kw2">new</span> Sprite<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="kw3">this</span>.<span class="me1">addChild</span><span class="br0">&#40;</span><span class="kw3">border</span><span class="br0">&#41;</span>;<br />
<span class="kw3">border</span>.<span class="me1">graphics</span>.<span class="kw3">lineStyle</span><span class="br0">&#40;</span><span class="nu0">2</span>, 0xCC3300, <span class="nu0">1</span>, <span class="kw2">true</span>, <span class="st0">&#8220;none&#8221;</span><span class="br0">&#41;</span>;<br />
<span class="kw3">border</span>.<span class="me1">graphics</span>.<span class="me1">drawRect</span><span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">1</span>,<span class="nu0">148</span>, <span class="nu0">148</span><span class="br0">&#41;</span>;</p>
<p><span class="kw2">function</span> onClick<span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; navigateToURL<span class="br0">&#40;</span><span class="kw2">new</span> URLRequest<span class="br0">&#40;</span><span class="st0">&#8220;javascript:window.open(&#8217;image.php?cat=slideshow&amp;id=&#8221;</span>+link+<span class="st0">&#8220;&#8216;,&#8217;atest&#8217;,'menubar=yes,resizable=no,width=710,height=730,left=50,top=50&#8242;);&#8221;</span><span class="br0">&#41;</span>, <span class="st0">&#8220;_self&#8221;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2007/12/19/as3-html-text-tags/feed/</wfw:commentRss>
		</item>
		<item>
		<title>QueueLoader AS3 rev27</title>
		<link>http://blog.hydrotik.com/2007/12/13/queueloader-as3-rev27/</link>
		<comments>http://blog.hydrotik.com/2007/12/13/queueloader-as3-rev27/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 04:23:18 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[QueueLoader]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2007/12/13/queueloader-as3-rev27/</guid>
		<description><![CDATA[Turns out when I modify the wiki, the revision number jumps since the wiki is considered a commit. Makes sense since you can edit the wiki locally and upload to the server. 
Updates:
Modified the FLV loading so it doesn&#8217;t use the Playback component source. It does simple streaming, event.file returns the NetStream Object. No more [...]]]></description>
			<content:encoded><![CDATA[<p>Turns out when I modify the wiki, the revision number jumps since the wiki is considered a commit. Makes sense since you can edit the wiki locally and upload to the server. </p>
<p><strong>Updates:</strong><br />
Modified the FLV loading so it doesn&#8217;t use the Playback component source. It does simple streaming, event.file returns the NetStream Object. No more issues of having to link, import, or embed the component code.</p>
<p>Also included is <a href="http://www.justgooddesign.com/blog//" target="_blank">Jesse Graupmann&#8217;s</a> suggestion and implementation of prioritizing and bundling of sub loaders. Basically it let&#8217;s you do this:</p>
<div class="codesnip-container" >
<div class="codesnip">_qLoader.<span class="me1">addItem</span><span class="br0">&#40;</span><span class="st0">&#8220;firstQueueLoaderQueueLoader&#8221;</span>, _oLoader, <span class="br0">&#123;</span> mimeType:QueueLoader.<span class="me1">FILE_QUEUE</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</div>
<p>Currently it requires setting the MIME type manually, but soon it will be set up so that if QueueLoader is in the path, it will recognize it as well. More enhancements and examples of this feature to come.</p>
<hr />
<a href="http://code.google.com/p/queueloader-as3/downloads/list" target="_blank">Click here for the current rev</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hydrotik.com/2007/12/13/queueloader-as3-rev27/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Papervision3D 2.0 + Go Tweening - Flipping Banner (Part 1)</title>
		<link>http://blog.hydrotik.com/2007/12/10/papervision3d-20-go-tweening-flipping-banner-part-1/</link>
		<comments>http://blog.hydrotik.com/2007/12/10/papervision3d-20-go-tweening-flipping-banner-part-1/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 03:01:02 +0000</pubDate>
		<dc:creator>djdonovan</dc:creator>
		
		<category><![CDATA[GO]]></category>

		<category><![CDATA[Papervision]]></category>

		<category><![CDATA[Source Code]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.hydrotik.com/2007/12/10/papervision3d-20-go-tweening-flipping-banner-part-1/</guid>
		<description><![CDATA[
Set up PapervisionTween to automatically render:

PapervisionTween.init&#40;renderer, scene, camera, viewport&#41;;

Calling PapervisionTween to tween a plane:

var b:PapervisionTween = new PapervisionTween&#40;_planeArray&#91;0&#93;, &#123;rotationY:0&#125;, 0, 1, Quintic.easeInOut, onFlipDone&#41;;
b.start&#40;&#41;;

I&#8217;ve also included the PapervisionTween code in the post in addition to the source files below, but let&#8217;s move on the flipping code.
Here&#8217;s the Core class that calls the Flip class:

package com.hydrotik.bannerflip3d &#123;
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>
Set up PapervisionTween to automatically render:</p>
<div class="codesnip-container" >
<div class="codesnip">PapervisionTween.<span class="me1">init</span><span class="br0">&#40;</span>renderer, scene, <span class="kw3">camera</span>, viewport<span class="br0">&#41;</span>;</div>
</div>
<p>Calling PapervisionTween to tween a plane:</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw2">var</span> b:PapervisionTween = <span class="kw2">new</span> PapervisionTween<span class="br0">&#40;</span>_planeArray<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="br0">&#123;</span>rotationY:<span class="nu0">0</span><span class="br0">&#125;</span>, <span class="nu0">0</span>, <span class="nu0">1</span>, Quintic.<span class="me1">easeInOut</span>, onFlipDone<span class="br0">&#41;</span>;<br />
b.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</div>
<p>I&#8217;ve also included the PapervisionTween code in the post in addition to the source files below, but let&#8217;s move on the flipping code.</p>
<p><strong>Here&#8217;s the Core class that calls the Flip class:</strong></p>
<div class="codesnip-container" >
<div class="codesnip">package com.<span class="me1">hydrotik</span>.<span class="me1">bannerflip3d</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @author Donovan Adams<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @version December 10, 2007<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @description Papervision Page flip example<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * <br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="kw3">MovieClip</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="me1">Sprite</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">display</span>.<span class="kw3">Stage</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">MouseEvent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">net</span>.<span class="me1">URLRequest</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">net</span>.<span class="me1">navigateToURL</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">bannerflip3d</span>.<span class="me1">Flip</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">bannerflip3d</span>.<span class="me1">FlipEvent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">utils</span>.<span class="me1">XMLLoader</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">utils</span>.<span class="me1">XMLLoaderEvent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="kw3">system</span>.<span class="kw3">Capabilities</span>;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">class</span> Core <span class="kw3">extends</span> Sprite <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _scope:<span class="kw3">MovieClip</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _stage:<span class="kw3">Stage</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _xml:<span class="kw3">XML</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> <span class="kw3">_url</span>:<span class="kw3">String</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _hit: Sprite;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _targ : <span class="kw3">String</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> Core<span class="br0">&#40;</span>scope:<span class="kw3">MovieClip</span>, <span class="kw3">stage</span>:Stage<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scope = scope;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _stage = <span class="kw3">stage</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> p:<span class="kw3">String</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">Capabilities</span>.<span class="kw3">playerType</span> == <span class="st0">&#8220;External&#8221;</span> || <span class="kw3">Capabilities</span>.<span class="kw3">playerType</span> == <span class="st0">&#8220;StandAlone&#8221;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p = <span class="st0">&#8220;../includes/admin/flippingbanner.xml&#8221;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;p = <span class="st0">&#8220;/wp-content/flippingbanner2/includes/admin/flippingbanner.xml&#8221;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">xml</span>:XMLLoader = <span class="kw2">new</span> XMLLoader<span class="br0">&#40;</span>p<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">xml</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>XMLLoaderEvent.<span class="me1">COMPLETE</span>, onXMLComplete<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">xml</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>XMLLoaderEvent.<span class="kw3">ERROR</span>, onXMLError<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onXMLError<span class="br0">&#40;</span>event : XMLLoaderEvent<span class="br0">&#41;</span> : <span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span>event<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// &#8211;== Private Methods ==&#8211;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onXMLComplete<span class="br0">&#40;</span>event:XMLLoaderEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="st0">&#8220;:: onXMLComplete:&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _xml = event.<span class="kw3">xml</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> _oFlip:Flip = <span class="kw2">new</span> Flip<span class="br0">&#40;</span>_scope, _stage, <span class="kw3">this</span>, event.<span class="kw3">xml</span>.<span class="me1">banner</span>.<span class="me1">children</span><span class="br0">&#40;</span><span class="br0">&#41;</span>, <span class="st0">&#8220;&#8221;</span>, <span class="kw2">new</span> <span class="kw3">int</span><span class="br0">&#40;</span>_xml.<span class="me1">attribute</span><span class="br0">&#40;</span><span class="st0">&#8220;seconds&#8221;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _oFlip.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FlipEvent.<span class="me1">COMPLETE</span>, onCompleteHandler<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _oFlip.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FlipEvent.<span class="me1">ON_FLIP</span>, onFlipHandler<span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit = <span class="kw2">new</span> Sprite<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit.<span class="me1">graphics</span>.<span class="kw3">beginFill</span><span class="br0">&#40;</span>0&#215;660000, <span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit.<span class="me1">graphics</span>.<span class="me1">drawRect</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, _stage.<span class="me1">stageWidth</span>, _stage.<span class="me1">stageHeight</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scope.<span class="me1">addChild</span><span class="br0">&#40;</span>_hit<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit.<span class="me1">addEventListener</span><span class="br0">&#40;</span>MouseEvent.<span class="me1">CLICK</span>, onClickHandler<span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit.<span class="me1">buttonMode</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit.<span class="kw3">useHandCursor</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _hit.<span class="me1">mouseEnabled</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onClickHandler<span class="br0">&#40;</span>event:MouseEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; navigateToURL<span class="br0">&#40;</span><span class="kw2">new</span> URLRequest<span class="br0">&#40;</span><span class="kw3">_url</span><span class="br0">&#41;</span>, _targ<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onCompleteHandler<span class="br0">&#40;</span>event:FlipEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">_url</span> = event.<span class="me1">link</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _targ = event.<span class="me1">targ</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onFlipHandler<span class="br0">&#40;</span>event:FlipEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">_url</span> = event.<span class="me1">link</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _targ = event.<span class="me1">targ</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
</div>
<p><strong>Here&#8217;s the updated Flip class using the Go tweening engine:</strong></p>
<div class="codesnip-container" >
<div class="codesnip">package com.<span class="me1">hydrotik</span>.<span class="me1">bannerflip3d</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/**<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @author Donovan Adams<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @version December 9, 2007<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @usage Example:&lt;div class=&quot;codesnip-container&quot; &gt;&lt;/div&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @description<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @history<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @sends<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * @todo<br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; * <br />
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">display</span>.*;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">Event</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">EventDispatcher</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">events</span>.<span class="me1">TimerEvent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">utils</span>.<span class="me1">Timer</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> flash.<span class="me1">utils</span>.<span class="me1">setTimeout</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">cameras</span>.<span class="me1">Camera3D</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">core</span>.<span class="me1">proto</span>.<span class="me1">SceneObject3D</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">events</span>.<span class="me1">FileLoadEvent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">materials</span>.<span class="me1">BitmapFileMaterial</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">materials</span>.<span class="me1">ColorMaterial</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">objects</span>.<span class="me1">DisplayObject3D</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">objects</span>.<span class="me1">primitives</span>.<span class="me1">Plane</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">render</span>.<span class="me1">BasicRenderEngine</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">scenes</span>.<span class="me1">Scene3D</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">view</span>.<span class="me1">Viewport3D</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> com.<span class="me1">hydrotik</span>.<span class="me1">go</span>.<span class="me1">PapervisionTween</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> fl.<span class="me1">motion</span>.<span class="me1">easing</span>.*;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> org.<span class="me1">papervision3d</span>.<span class="me1">core</span>.<span class="me1">proto</span>.<span class="me1">MaterialObject3D</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>Event<span class="br0">&#40;</span><span class="kw3">name</span>=<span class="st0">&#8220;COMPLETE&#8221;</span>, <span class="kw3">type</span>=<span class="st0">&#8220;com.hydrotik.bannerflip3d.FlipEvent&#8221;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>Event<span class="br0">&#40;</span><span class="kw3">name</span>=<span class="st0">&#8220;ON_FLIP&#8221;</span>, <span class="kw3">type</span>=<span class="st0">&#8220;com.hydrotik.bannerflip3d.FlipEvent&#8221;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">class</span> Flip <span class="kw3">extends</span> EventDispatcher <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw3">static</span> const VERBOSE:<span class="kw3">Boolean</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _scope:Sprite;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _stage:<span class="kw3">Stage</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _oCore:*;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _assetPath:<span class="kw3">String</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _materialArray:<span class="kw3">Array</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _planeArray:<span class="kw3">Array</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _array:XMLList;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _count:<span class="kw3">int</span> = <span class="nu0">0</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _next:<span class="kw3">int</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _prev:<span class="kw3">int</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _loader:Sprite;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> _seconds:<span class="kw3">int</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//New 2.0 Privates</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> renderer:BasicRenderEngine;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> <span class="kw3">camera</span>:Camera3D;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> viewport:Viewport3D;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> debug : <span class="kw2">Function</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> scene : Scene3D;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> white : MaterialObject3D;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> bg : Plane;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> Flip<span class="br0">&#40;</span>scope:Sprite, <span class="kw3">stage</span>:Stage, core:*, a:XMLList, assetPath:<span class="kw3">String</span> = <span class="st0">&#8220;../flashassets/&#8221;</span>, s:<span class="kw3">int</span> = <span class="nu0">10</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; debug = <span class="kw3">trace</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">stage</span>.<span class="kw3">align</span> = StageAlign.<span class="me1">TOP_LEFT</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">stage</span>.<span class="kw3">scaleMode</span> = StageScaleMode.<span class="me1">NO_SCALE</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scope = scope;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _stage = <span class="kw3">stage</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _oCore = core;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _array = a;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _assetPath = assetPath;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _seconds = s;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _materialArray = <span class="br0">&#91;</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _planeArray = <span class="br0">&#91;</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scene = <span class="kw2">new</span> Scene3D<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; renderer = <span class="kw2">new</span> BasicRenderEngine<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">camera</span> = <span class="kw2">new</span> Camera3D<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">camera</span>.<span class="me1">z</span> = -<span class="nu0">100</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewport = <span class="kw2">new</span> Viewport3D<span class="br0">&#40;</span><span class="nu0">500</span>,<span class="nu0">300</span>,<span class="kw2">true</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewport.<span class="me1">alpha</span> = <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scope.<span class="me1">addChild</span><span class="br0">&#40;</span>viewport<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; white = <span class="kw2">new</span> ColorMaterial<span class="br0">&#40;</span>0xFFFFFF<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setTimeout<span class="br0">&#40;</span>addedToStage, <span class="nu0">100</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> addedToStage<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>VERBOSE<span class="br0">&#41;</span> debug<span class="br0">&#40;</span><span class="st0">&#8220;<span class="es0">\n</span><span class="es0">\n</span>&gt;&gt; Flip.addedToStage(); - args: &#8220;</span>+<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _loader = <span class="kw2">new</span> Sprite<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _loader.<span class="me1">graphics</span>.<span class="kw3">beginFill</span><span class="br0">&#40;</span>0&#215;000000<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _loader.<span class="me1">graphics</span>.<span class="me1">drawRect</span><span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">1</span>, <span class="nu0">4</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _scope.<span class="me1">addChild</span><span class="br0">&#40;</span>_loader<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _loader.<span class="me1">x</span> = <span class="br0">&#40;</span>_stage.<span class="me1">stageWidth</span>/<span class="nu0">2</span><span class="br0">&#41;</span> - <span class="nu0">50</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _loader.<span class="me1">y</span> = <span class="br0">&#40;</span>_stage.<span class="me1">stageHeight</span>/<span class="nu0">2</span><span class="br0">&#41;</span> - <span class="nu0">2</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i:<span class="kw3">int</span> = <span class="nu0">0</span>; i &lt; _array.<span class="kw3">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; i++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _materialArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span> = <span class="kw2">new</span> BitmapFileMaterial<span class="br0">&#40;</span>_array<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">attribute</span><span class="br0">&#40;</span><span class="st0">&#8217;src&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _materialArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">oneSide</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _materialArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">smooth</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _materialArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">LOAD_PROGRESS</span>, onFileProgress<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _materialArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>FileLoadEvent.<span class="me1">LOAD_COMPLETE</span>, onFileComplete<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _planeArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span> = <span class="kw2">new</span> Plane<span class="br0">&#40;</span> _materialArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>, <span class="nu0">300</span>, <span class="nu0">156</span>, <span class="nu0">6</span>, <span class="nu0">6</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scene.<span class="me1">addChild</span><span class="br0">&#40;</span>_planeArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _planeArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="kw3">name</span> = i.<span class="kw3">toString</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _planeArray<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">rotationY</span> = -<span class="nu0">180</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// PapervisionTween is extending LinearGo. PapervisionTween is a custom extension using custom syntax, running on the Go system&nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// The init function passes the rendering info so that PapervisionTween can take care of updating the renderer</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PapervisionTween.<span class="me1">init</span><span class="br0">&#40;</span>renderer, scene, <span class="kw3">camera</span>, viewport<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onFileProgress<span class="br0">&#40;</span>event:FileLoadEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>VERBOSE<span class="br0">&#41;</span> debug<span class="br0">&#40;</span><span class="st0">&#8220;<span class="es0">\t</span> percentage: &#8220;</span>+<span class="kw3">Math</span>.<span class="kw3">round</span><span class="br0">&#40;</span><span class="br0">&#40;</span>event.<span class="kw3">bytesLoaded</span>/event.<span class="kw3">bytesTotal</span><span class="br0">&#41;</span>*<span class="nu0">100</span><span class="br0">&#41;</span> + <span class="st0">&#8220;%&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> sec:<span class="kw3">Number</span> = <span class="nu0">100</span>/_array.<span class="kw3">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _loader.<span class="kw3">width</span> = <span class="br0">&#40;</span><span class="br0">&#40;</span>_count * sec<span class="br0">&#41;</span> + <span class="br0">&#40;</span><span class="br0">&#40;</span>event.<span class="kw3">bytesLoaded</span>/event.<span class="kw3">bytesTotal</span><span class="br0">&#41;</span> * sec<span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onFileComplete<span class="br0">&#40;</span>event:FileLoadEvent<span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>VERBOSE<span class="br0">&#41;</span> debug<span class="br0">&#40;</span><span class="st0">&#8220;complete!&#8221;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _count++;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>_count == _array.<span class="kw3">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; onImageQueueCompleteHandler<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> onImageQueueCompleteHandler<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// PapervisionTween is extending LinearGo. PapervisionTween is a custom extension using custom syntax, running on the Go system&nbsp;&nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> l:PapervisionTween = <span class="kw2">new</span> PapervisionTween<span class="br0">&#40;</span>_loader, <span class="br0">&#123;</span>alpha:<span class="nu0">0</span><span class="br0">&#125;</span>, <span class="nu0">0</span>, .<span class="nu0">2</span>, Quintic.<span class="me1">easeInOut</span>, loaderFade<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; l.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// PapervisionTween is extending LinearGo. PapervisionTween is a custom extension using custom syntax, running on the Go system&nbsp;&nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> b:PapervisionTween = <span class="kw2">new</span> PapervisionTween<span class="br0">&#40;</span>_planeArray<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="br0">&#123;</span>rotationY:<span class="nu0">0</span><span class="br0">&#125;</span>, <span class="nu0">0</span>, <span class="nu0">1</span>, Quintic.<span class="me1">easeInOut</span>, onFlipDone<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// PapervisionTween is extending LinearGo. PapervisionTween is a custom extension using custom syntax, running on the Go system&nbsp;&nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> c:PapervisionTween = <span class="kw2">new</span> PapervisionTween<span class="br0">&#40;</span><span class="kw3">camera</span>, <span class="br0">&#123;</span>z:-<span class="nu0">100</span><span class="br0">&#125;</span>, <span class="nu0">0</span>, <span class="nu0">1</span>, Quintic.<span class="me1">easeInOut</span>, onFlipDone<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; c.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _next = <span class="nu0">0</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _count = -<span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bg = <span class="kw2">new</span> Plane<span class="br0">&#40;</span>white,<span class="nu0">5120</span>,<span class="nu0">2560</span>,<span class="nu0">10</span>,<span class="nu0">10</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bg.<span class="me1">y</span> = -<span class="nu0">200</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bg.<span class="me1">z</span> = <span class="nu0">500</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bg.<span class="me1">pitch</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scene.<span class="me1">addChild</span><span class="br0">&#40;</span>bg<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dispatchEvent<span class="br0">&#40;</span><span class="kw2">new</span> FlipEvent<span class="br0">&#40;</span>FlipEvent.<span class="me1">COMPLETE</span>, _next, _array<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">attribute</span><span class="br0">&#40;</span><span class="st0">&#8216;link&#8217;</span><span class="br0">&#41;</span>, _array<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">attribute</span><span class="br0">&#40;</span><span class="st0">&#8216;target&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> myTimer:Timer = <span class="kw2">new</span> Timer<span class="br0">&#40;</span>_seconds * <span class="nu0">1000</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myTimer.<span class="me1">addEventListener</span><span class="br0">&#40;</span>TimerEvent.<span class="me1">TIMER</span>, timerHandler<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myTimer.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> flip<span class="br0">&#40;</span>id:<span class="kw3">int</span><span class="br0">&#41;</span>:<span class="kw3">void</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// PapervisionTween is extending LinearGo. PapervisionTween is a custom extension using custom syntax, running on the Go system&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> a:PapervisionTween = <span class="kw2">new</span> PapervisionTween<span class="br0">&#40;</span>_planeArray<span class="br0">&#91;</span>_next<span class="br0">&#93;</span>, <span class="br0">&#123;</span>rotationY:<span class="nu0">180</span><span class="br0">&#125;</span>, <span class="nu0">0</span>, <span class="nu0">1</span>, Quintic.<span class="me1">easeInOut</span>, onOldFlipDone<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a.<span class="kw3">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Update Data</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _prev = _next;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _next = <span class="br0">&#40;</span>id == _array.<span class="kw3">length</span><span class="br0">&#40;</span><span class="br0">&#41;</span> - <span class="nu0">1</span><span class="br0">&#41;</span> ? <span class="nu0">0</span> : id + <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">url</span>:<span class="kw3">String</span> = _array<span class="br0">&#91;</span>_next<span class="br0">&#93;</span>.<span class="me1">attribute</span><span class="br0">&#40;</span><span class="st0">&#8216;link&#8217;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> targ:<span class="kw3">String</span> = _array<span class="br0">&#91;</span>_next<span class="br0">&#93;</span>.<span class="me1">attribute</span><span class="br0">&#40;</span><span class="st0">&#8216;target&#8217;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">trace</span><span class="br0">&#40;</span><span class="kw3">url</span>, targ<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dispatchEvent<span class="br0">&#40;</span><span class="kw2">new</span> FlipEvent<span class="br0">&#40;</span>FlipEvent.<span class="me1">ON_FLIP</span>, _next, <span class="kw3">url</span>, tar