<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Substance Labs</title>
	
	<link>http://labs.findsubstance.com</link>
	<description>Create. Constantly.</description>
	<pubDate>Fri, 24 Oct 2008 18:45:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SubstanceLabs" type="application/rss+xml" /><feedburner:emailServiceId>1708352</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>UPDATED: Using AS3 to Upload and Encode Images</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/431001630/</link>
		<comments>http://labs.findsubstance.com/2008/10/24/updated-using-as3-to-upload-and-encode-images/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 18:43:43 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Experiments]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/?p=99</guid>
		<description><![CDATA[After many requests, I&#8217;ve updated the demo and source files for the wildly popular labs post Using AS3 to Upload and Encode Images. Hope everyone finds it helpful.
]]></description>
			<content:encoded><![CDATA[<p>After many requests, I&#8217;ve updated the <a href="http://labs.findsubstance.com/d/as3-upload-encode-images/">demo</a> and <a href="http://labs.findsubstance.com/d/as3-upload-encode-images/as3-upload-encode-images.zip">source</a> files for the wildly popular labs post <a href="http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/">Using AS3 to Upload and Encode Images</a>. Hope everyone finds it helpful.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=QrrsM"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=QrrsM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=7bQtm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=7bQtm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=TSQzm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=TSQzm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=yXnYm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=yXnYm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=lNYQM"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=lNYQM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=2vIHm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=2vIHm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/431001630" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/10/24/updated-using-as3-to-upload-and-encode-images/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/10/24/updated-using-as3-to-upload-and-encode-images/</feedburner:origLink></item>
		<item>
		<title>Dynamic Image Creation with Adobe AIR</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/423101681/</link>
		<comments>http://labs.findsubstance.com/2008/10/16/dynamic-image-creation-with-adobe-air/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 22:15:00 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Experiments]]></category>

		<category><![CDATA[Research]]></category>

		<category><![CDATA[adobe air]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[image encoding]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/?p=45</guid>
		<description><![CDATA[We&#8217;ve put together a simple AIR application that allows you to load a SWF, select any class, and export a series of PNG or JPEG images. Potential uses for this tool range from photoshop-style batch image creation to randomized image painting ala Erik Natzke.
There&#8217;s a built in help section, but here&#8217;s a short video that [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve put together a simple <a href="http://get.adobe.com/air/">AIR</a> application that allows you to load a SWF, select any class, and export a series of PNG or JPEG images. Potential uses for this tool range from photoshop-style batch image creation to <a href="http://www.flickr.com/photos/natzke/2924200721/">randomized image painting</a> ala <a href="http://jot.eriknatzke.com/">Erik Natzke</a>.</p>
<p>There&#8217;s a built in help section, but here&#8217;s a short video that outlines the basic idea:</p>
<p><object width="500" height="377"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1986693&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=990000&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=1986693&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=990000&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="377"></embed></object></p>
<p>Since I didn&#8217;t include a voiceover for this example, the basic steps involved are:</p>
<ol>
<li>Export a custom class on an empty symbol.</li>
<li>Write logic to add a text field and draw a circle.</li>
<li>Publish SWF and load into the image encoder.</li>
<li>Create 20 PNG images in the &#8220;output&#8221; folder on the Desktop.</li>
</ol>
<p>Extra notes on functionality:</p>
<ol>
<li>The application attempts to pass in the current serial index to the constructor of the class you&#8217;ve chosen. This has a variety of uses, but is especially good for looking up array data, or directly populating a text field (as in the example above).</li>
<li>Even if you don&#8217;t declare a constructor parameter, the export will still run just fine. This makes it easy to see what any class will look like as an image, or to export a series of images from a <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Math.html#random()">Math.random</a>-based visualization class.</li>
</ol>
<p>The application is available for download <a href="http://labs.findsubstance.com/d/dynamic-image-creation-with-adobe-air/ImageEncoder.air">here</a>. If you have any questions or requests, post a comment and I&#8217;ll do my best to help out.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=OOiVM"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=OOiVM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=t2nvm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=t2nvm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=8h07m"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=8h07m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=6vscm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=6vscm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=GzFaM"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=GzFaM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=P2gxm"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=P2gxm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/423101681" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/10/16/dynamic-image-creation-with-adobe-air/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/10/16/dynamic-image-creation-with-adobe-air/</feedburner:origLink></item>
		<item>
		<title>Proportional Scaling Techniques in AS3</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/329040749/</link>
		<comments>http://labs.findsubstance.com/2008/07/07/as3-scaling-techniques/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 14:59:19 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/07/07/as3-scaling-techniques/</guid>
		<description><![CDATA[The ability to proportionally scale an object to fit within, or fill a region is a powerful technique with a variety of applications. We used this approach on Logobama to allow users to upload any size photo and automatically scale it to fit within the available space, before saving out an image from Flash.
The source [...]]]></description>
			<content:encoded><![CDATA[<p>The ability to proportionally scale an object to fit within, or fill a region is a powerful technique with a variety of applications. We used this approach on <a href="http://logobama.com">Logobama</a> to allow users to upload any size photo and automatically scale it to fit within the available space, before <a href="http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/">saving out an image from Flash</a>.</p>
<p>The <a href="http://labs.findsubstance.com/d/as3-scaling-techniques/as3-scaling-techniques.zip">source code</a> for this post includes a ScalingImage class that loads an image and responds to any <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Stage.html#event:resize">stage resize event</a> by proportionally scaling the image to fill the stage. Check out the <a href="http://labs.findsubstance.com/d/as3-scaling-techniques/">demo</a> and try resizing your browser.</p>
<p>The code behind a proportionally scaled full screen image is fairly straightforward:</p>
<pre><code>// set image dimensions to match stage;
image.width = stage.stageWidth;
image.height = stage.stageHeight;

// choose the larger scale property and match the other to it;
( image.scaleX &lt; image.scaleY ) ? image.scaleY = image.scaleX : image.scaleX = image.scaleY;
</code></pre>
<p>Since scaleX and scaleY are percentages, it&#8217;s just a matter of figuring out which property is larger and making the two equal.</p>
<p>By swapping the scale comparison from &#8220;greater than&#8221; to &#8220;less than&#8221;, the object will scale proportionally to fit the larger of the two dimensions given. This kind of calculation is handy when you need to fit items of variable dimensions into a fixed space, such as the flickr photos on the <a href="http://authenticitybook.com/axiom-gallery/">Authenticity Book Axiom Gallery</a>.</p>
<pre><code>// choose the smaller scale property and match the other to it;
( image.scaleX &gt; image.scaleY ) ? image.scaleY = image.scaleX : image.scaleX = image.scaleY;
</code></pre>
<p>There are many applications for this technique, from creating image thumbnails to building a liquid grid layout. We&#8217;d love to see more examples of this approach in action, so feel free to leave a link or two in the comments.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=wenKrJ"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=wenKrJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=QGGCyj"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=QGGCyj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=U53rgj"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=U53rgj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=lcsfIj"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=lcsfIj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=ZRCjbJ"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=ZRCjbJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=Pk73jj"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=Pk73jj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/329040749" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/07/07/as3-scaling-techniques/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/07/07/as3-scaling-techniques/</feedburner:origLink></item>
		<item>
		<title>Layering Transparent Flash Content over HTML with Scripted Masking</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/323307707/</link>
		<comments>http://labs.findsubstance.com/2008/06/30/transparent-flash-over-html/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:59:15 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[Flash]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/06/30/transparent-flash-over-html/</guid>
		<description><![CDATA[Anyone who has ever tried to display transparent Flash content over HTML knows that getting things to sort properly on the z-index can be frustrating. Flash has an annoying tendency to force itself to render above of all other content  Some browsers have trouble rendering plugin content consistently, which can make HTML stacked below [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who has ever tried to display <a href="http://labs.findsubstance.com/d/transparent-flash-over-html/">transparent Flash content over <abbr title="Hypertext Markup Language">HTML</abbr></a> knows that getting things to sort properly on the z-index can be frustrating. <del>Flash has an annoying tendency to force itself to render above of all other content</del>  Some browsers have trouble rendering plugin content consistently, which can make HTML stacked below Flash content inaccessible to the user. The technique described below is meant to ensure a consistent cross-browser user experience when it comes to issues with flickering or unwanted re-sorting of transparent Flash content. </p>
<p>We at <a href="http://findsubstance.com">Substance</a> have come across this a number of times, and <a href="http://labs.findsubstance.com/d/transparent-flash-over-html/transparent-flash-over-html.zip">the best solution</a> we have found is to knock out the areas of the Flash movie that require accessible content displayed below. This can be accomplished rather easily with the use of <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BlendMode.html">layer blend modes</a>. </p>
<p>The first step to making this work is to set <strong>wmode</strong> in your HTML <a href="http://code.google.com/p/swfobject/wiki/SWFObject_2_0_documentation">Flash embed code</a> to <strong>transparent</strong>. After that is done, you can immediately take advantage of this trick:</p>
<ol>
<li>Set the blendMode property in your Document Class to BlendMode.LAYER</li>
<li>Set the blendMode property of your knockout area to BlendMode.ERASE</li>
</ol>
<p>This approach differs from creating a true mask, which acts as a window to the clip being masked, by doing the reverse &ndash; creating a window <em>through</em> the clip being masked, which in this case is the entire SWF.</p>
<p>Here is a quick example ( assuming &#8220;this&#8221; is your document class ):</p>
<pre><code>// set blendMode for Document Class;
this.blendMode = BlendMode.LAYER;

// create knockout area;
var knockout : Sprite = new Sprite();

// draw 50 x 100 px box;
with ( knockout.graphics )
{
	beginFill( 0x000000 );
	drawRect( 0, 0, 50, 100 );
}

// give mask knockout powers;
knockout.blendMode = BlendMode.ERASE;

// add knockout mask to stage;
this.addChild( knockout );</code></pre>
<p>On the <a href="http://arakawagrip.com">Arakawa home page</a>, the Flash area is set to fill the browser window completely. The logo, navigation, and footer are all knocked out, with a listener attached to the stage for Event.RESIZE so that the footer window always remains at the bottom of the file. This is pretty simple, but here&#8217;s a snippet of to show how to keep an item positioned at the bottom of the stage:</p>
<pre><code>// add listener to stage in constructor;
stage.addEventListener( Event.RESIZE, onResize );

// resize listener in class body;
private function onResize () : void
{
	knockout.y = stage.stageHeight - knockout.height;
}
</code></pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=hB0suI"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=hB0suI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=PRmJ3i"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=PRmJ3i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=7l9wji"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=7l9wji" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=FKSLPi"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=FKSLPi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=knN3JI"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=knN3JI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=3H8Lgi"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=3H8Lgi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/323307707" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/06/30/transparent-flash-over-html/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/06/30/transparent-flash-over-html/</feedburner:origLink></item>
		<item>
		<title>Recognizing the Unsung Heroes of Spam</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/318339329/</link>
		<comments>http://labs.findsubstance.com/2008/06/23/recognizing-the-unsung-heroes-of-spam/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 19:59:50 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[Experiments]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/06/23/recognizing-the-unsung-heroes-of-spam/</guid>
		<description><![CDATA[Spammers commit their lives to ridding the world of overpriced pharma$euticals, embarrassing bedroom s!tuations, and wasted years spent &#8220;earning&#8221; a diplom@. Who can calculate the uncollected overseas lottery winnings, or untold stories of exiled Nigerian royalty the world would suffer without their unwavering dedication?
It&#8217;s time that we recognize the true genius behind a well-crafted piece [...]]]></description>
			<content:encoded><![CDATA[<p>Spammers commit their lives to ridding the world of overpriced pharma$euticals, embarrassing bedroom s!tuations, and wasted years spent &#8220;earning&#8221; a diplom@. Who can calculate the uncollected overseas lottery winnings, or untold stories of exiled Nigerian royalty the world would suffer without their unwavering dedication?</p>
<p>It&#8217;s time that we recognize the true genius behind a well-crafted piece of spam. In support of this worthy cause, we have created <a href="http://spamlets.com">spamlets™</a>, a place where the world can bring the poetry of unrequested badgering to light. Do your part, donate a <a href="http://spamlets.com">spamlet</a> today.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=jAcrlI"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=jAcrlI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=P8vVHi"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=P8vVHi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=9TG1Di"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=9TG1Di" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=mnb9Ii"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=mnb9Ii" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=FmKP4I"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=FmKP4I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=3ziMMi"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=3ziMMi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/318339329" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/06/23/recognizing-the-unsung-heroes-of-spam/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/06/23/recognizing-the-unsung-heroes-of-spam/</feedburner:origLink></item>
		<item>
		<title>Never Get Rickrolled Again</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/303096140/</link>
		<comments>http://labs.findsubstance.com/2008/06/02/never-get-rickrolled-again/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 17:01:41 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[Experiments]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/06/02/never-get-rickrolled-again/</guid>
		<description><![CDATA[We at Substance pride ourselves on constant innovation that has an immediate effect on society as a whole. Fortunately for society, we have focused our efforts on something that will truly change the way you surf the intertubes. With our patented, new, and simultaneously improved RickProof™ Rickroll prevention engine, one need never experience the embarrassment [...]]]></description>
			<content:encoded><![CDATA[<p>We at <a href="http://findsubstance.com">Substance</a> pride ourselves on constant innovation that has an immediate effect on society as a whole. Fortunately for society, we have focused our efforts on something that will truly <strong>change the way you surf the intertubes</strong>. With our patented, new, and simultaneously improved <a href="http://rickproof.com">RickProof™ Rickroll prevention engine</a>, one need never experience the embarrassment of being Rickrolled again. </p>
<p>Just enter any suspect web address into our sniffer at <a href="http://rickproof.com">RickProof.com</a>, and our RickBot™ will assess the risk of a Rickroll. No need to thanks us, we don&#8217;t do this for the fame, we do it for the people.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=7xECDI"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=7xECDI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=11z1Ui"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=11z1Ui" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=t93Mci"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=t93Mci" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=UcK09i"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=UcK09i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=WWczNI"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=WWczNI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=dNXZsi"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=dNXZsi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/303096140" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/06/02/never-get-rickrolled-again/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/06/02/never-get-rickrolled-again/</feedburner:origLink></item>
		<item>
		<title>Flash 10 to Include “Kick Ass” Button</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/300964226/</link>
		<comments>http://labs.findsubstance.com/2008/05/29/flash-10-to-include-kick-ass-button/#comments</comments>
		<pubDate>Fri, 30 May 2008 03:01:03 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/05/29/flash-10-to-include-kick-ass-button/</guid>
		<description><![CDATA[I once heard Joshua Davis say that there is no Kick Ass button in Flash. While his point is valid, it looks like Adobe actually managed to include (at least) one with the upcoming release of Flash 10 (a.k.a. Astro).
The next release of Flash won&#8217;t include Actionscript 4 (since the ECMAScript Spec isn&#8217;t complete), but [...]]]></description>
			<content:encoded><![CDATA[<p>I once heard <a href="http://joshuadavis.com">Joshua Davis</a> say that there is no Kick Ass button in Flash. While his point is valid, it looks like <a href="http://adobe.com">Adobe</a> actually managed to include (at least) one with the upcoming release of <a href="http://labs.adobe.com/technologies/flashplayer10/">Flash 10</a> (a.k.a. <a href="http://labs.adobe.com/technologies/flashplayer10/releasenotes.html">Astro</a>).</p>
<p>The next <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200805/051508AdobeFlashPlayer10.html">release</a> of Flash won&#8217;t include Actionscript 4 (since the <a href="http://moock.org/lectures/newInECMAScript4/">ECMAScript Spec</a> isn&#8217;t complete), but it <em>will</em> include some really advanced features. Among them are: <strong>native 3D support</strong>, <strong>advanced hardware acceleration</strong>, <strong>inverse kinematics</strong>, shareable <strong>pixel shaders and filters</strong> (the same used by Photoshop and AfterEffects), and <strong>dynamic streaming</strong> video quality adjustment. </p>
<p>Some long awaited additions to AS3 will include: <strong>typed arrays</strong>, <strong>runtime FileReference access</strong>, <strong>vectors</strong>, an <strong>enhanced drawing API</strong>, <strong>dynamic sound generation</strong>, and <strong>advanced text layout</strong> support.</p>
<h3>Here&#8217;s a quick look at some of the new 3D tools:</h3>
<p></p>
<div class="vvqbox vvqyoutube" style="width:425px;height:355px;">
<p id="vvq4908ac3eb383e"><a href="http://www.youtube.com/watch?v=2shiRmpdacs">http://www.youtube.com/watch?v=2shiRmpdacs</a></p>
</div>
<p>It&#8217;s exciting to see the continued evolution of such a great program, as well as the creative possibilities opened up by the new features. If there is anyone out there still using AS2, it&#8217;s time to guts up and <a href="http://gotoandlearn.com/">learn Actionscript 3</a>. Without it, you won&#8217;t be able to truly enjoy all that the next version of Flash has to offer, even though they <em>are</em> seriously improving the <a href="http://youtube.com/watch?v=No9N9za62xA">timeline animation</a> experience. </p>
<h3>A short demonstration of Inverse Kinematic animation tools:</h3>
<p></p>
<div class="vvqbox vvqyoutube" style="width:425px;height:355px;">
<p id="vvq4908ac3eb85d3"><a href="http://www.youtube.com/watch?v=wDjewbDF4bo">http://www.youtube.com/watch?v=wDjewbDF4bo</a></p>
</div>
<p>Download the Flash Player 10  beta from <a href="http://labs.adobe.com/downloads/flashplayer10.html">Adobe Labs</a> (at your own risk, since it&#8217;s in beta).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=ut9SVH"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=ut9SVH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=5z6Uvh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=5z6Uvh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=Lg4s2h"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=Lg4s2h" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=tYZ49h"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=tYZ49h" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=0ONCvH"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=0ONCvH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=we4J3h"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=we4J3h" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/300964226" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/05/29/flash-10-to-include-kick-ass-button/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/05/29/flash-10-to-include-kick-ass-button/</feedburner:origLink></item>
		<item>
		<title>The Keys to Creative Programming</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/299998033/</link>
		<comments>http://labs.findsubstance.com/2008/05/28/the-keys-to-creative-programming/#comments</comments>
		<pubDate>Wed, 28 May 2008 17:59:08 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Inspiration]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[fitc]]></category>

		<category><![CDATA[flash in the can]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/05/28/the-keys-to-creative-programming/</guid>
		<description><![CDATA[It&#8217;s been about a month since FITC Toronto, the fourth Flash-specific conference I&#8217;ve attended over the last three years (thanks to David Lowe-Rogstad + Substance). It ranked above the others from an overall experience standpoint, but rather than list and comment on all the sessions I attended, I&#8217;ve decided to consolidate them into a few [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been about a month since <a href="http://www.fitc.ca/event_detail.cfm?festival_id=22">FITC Toronto</a>, the fourth Flash-specific conference I&#8217;ve attended over the last three years (thanks to David Lowe-Rogstad + <a href="http://findsubstance.com/">Substance</a>). It ranked above the others from an overall experience standpoint, but rather than list and comment on all the sessions I attended, I&#8217;ve decided to consolidate them into a few common ideas inspired from each: </p>
<ol>
<li><strong>Know Where to Look</strong></li>
<li><strong>Iterate Constantly</strong></li>
<li><strong>Share Openly</strong></li>
</ol>
<h2>Know Where to Look</h2>
<p>This is true of both programming and creative inspiration. Rather than memorizing large sets of properties and methods, you simply need to know where to look up the information needed to solve a problem. <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/">The AS3 documentation</a> exists for this very reason. (As a bonus, the more time you spend looking through documentation, the less time you&#8217;ll eventually spend looking through documentation). </p>
<p>Creatively, it can be easy to fall into comfortable patterns which can stifle innovation. Solving this is just a matter of knowing where to find inspiration. Taking queues from nature, personal experience, or the work of others can breathe new life into old techniques.</p>
<h2>Iterate Constantly</h2>
<p>Each project comes with its own set of challenges, and each solution provides a new avenue for exploration. By evolving and combining small pieces of code over time, building complexity suddenly becomes a matter of simplicity and patience.</p>
<p>To illustrate the power of iteration, here are a couple of projects by <a href="http://jot.eriknatzke.com/">Erik Natzke</a> and <a href="http://flight404.com/blog/">Robert Hodgin</a>. Each would be overwhelming to architect from scratch, but were built from a series of simple iterations. By constantly pushing the boundaries reached on previous experiments, both manage to compound a handful of simple techniques into something complex and unique. </p>
<p><a href="http://jot.eriknatzke.com/">Erik Natzke, Ghosts II</a></p>
<div class="vvqbox vvqyoutube" style="width:425px;height:355px;">
<p id="vvq4908ac3ec9702"><a href="http://www.youtube.com/watch?v=N8quIXyX24k">http://www.youtube.com/watch?v=N8quIXyX24k</a></p>
</div>
<p><a href="http://flight404.com/blog/">Robert Hodgin, Magnetosphere</a></p>
<div class="vvqbox vvqyoutube" style="width:425px;height:355px;">
<p id="vvq4908ac3ece595"><a href="http://www.youtube.com/watch?v=TwQ_BwRTDFs">http://www.youtube.com/watch?v=TwQ_BwRTDFs</a></p>
</div>
<h2>Share Openly</h2>
<p>While it might feel like freely releasing the source code behind a project isn&#8217;t a sound business practice, sharing has a tendency to be repaid in kind. Business or speaking opportunities might result, or someone could take your code in a direction you&#8217;d never have thought of, giving you new avenues to explore. Additionally, it&#8217;s important to remember that each of us has been given a generous share of knowledge from our mentors, and we should be willing to pay that effort forward.</p>
<p>Here is a short list of creative coders who grow their work through constant iteration, and often share their code with the world: <a href="http://www.levitated.net/">Jared Tarbell</a>, <a href="http://www.bit-101.com/blog/">Keith Peters</a>, <a href="http://www.presstube.com/daily.php">James Paterson</a>, <a href="http://www.crashmedia.com/">Craig Swann</a>, <a href="http://gskinner.com/blog">Grant Skinner</a>, <a href="http://www.joshuadavis.com/">Joshua Davis</a>. It can be easy to view this list as the &#8220;lucky ones&#8221; who are paid to build experimental work, but to quote Joshua Davis, &#8220;people will hire you to make the kind of work you create&#8221;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=fpaCXH"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=fpaCXH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=SGUAOh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=SGUAOh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=ZQcech"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=ZQcech" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=W1oaZh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=W1oaZh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=U4Y9LH"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=U4Y9LH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=ktTAkh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=ktTAkh" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/299998033" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/05/28/the-keys-to-creative-programming/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/05/28/the-keys-to-creative-programming/</feedburner:origLink></item>
		<item>
		<title>Adobe’s Open Screen Project and the Future of Interactive Development</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/281704279/</link>
		<comments>http://labs.findsubstance.com/2008/05/01/adobes-open-screen-project-and-the-future-of-interactive-development/#comments</comments>
		<pubDate>Thu, 01 May 2008 22:08:58 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[adobe]]></category>

		<category><![CDATA[open screen]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/05/01/adobes-open-screen-project-and-the-future-of-interactive-development/</guid>
		<description><![CDATA[With widespread support from technology leaders including Intel, Motorola, Nokia, Sony, Toshiba, Verizon, and leading content providers including BBC, MTV, and NBC Universal, Adobe has announced the Open Screen Project. 
This will have an unprecedented impact on the future of interactive development, punctuated by the following changes:

Removal of restrictions on use of the SWF and [...]]]></description>
			<content:encoded><![CDATA[<p>With widespread support from technology leaders including Intel, Motorola, Nokia, Sony, Toshiba, Verizon, and leading content providers including <abbr title="British Broadcasting Company">BBC</abbr>, <abbr title="Music Television Network">MTV</abbr>, and <abbr title="National Broadcasting Company">NBC</abbr> Universal, Adobe has announced the <a href="http://www.adobe.com/openscreenproject/">Open Screen Project</a>. </p>
<p>This will have an unprecedented impact on the future of interactive development, punctuated by the following changes:</p>
<ol>
<li>Removal of restrictions on use of the <abbr title="Shockwave Flash">SWF</abbr> and <abbr title="Flash Video">FLV</abbr>/F4V specifications</li>
<li>Publishing the device porting layer <abbr title="Application Programming Interfaces">APIs</abbr> for Adobe Flash Player</li>
<li>Publishing the Adobe Flash® Cast™ protocol and the AMF protocol for robust data services</li>
<li>Removal of licensing fees – making next major releases of Adobe Flash Player and Adobe <abbr title="Adobe Integrated Runtime">AIR</abbr> for devices free</li>
</ol>
<p>The Flash community has always been influential in shaping the future of Flash, and with the removal of licensing restrictions and fees there is an even greater opportunity for the community to inform its development. It will now be easier to develop more types of Flash applications, across more devices, without the need for a licensing deal. </p>
<p>We are excited to see what new levels of innovation this brings to the interactive industry. The implications for resolving issues between search engines and Flash content are huge, along with potential resolutions to technology-specific conflicts such as viewing Flash content on the iPhone. </p>
<p>If there was ever any doubt about the impact of the already widespread Flash technology, the Open Screen Project should instill a renewed faith in its potential. More information about open technologies supported by Adobe can be found at the <a href="http://opensource.adobe.com/">adobe open source page</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=Xh0vwH"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=Xh0vwH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=Dns8eh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=Dns8eh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=Y0ztsh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=Y0ztsh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=8uNjfh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=8uNjfh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=CEO6jH"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=CEO6jH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=J9pvWh"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=J9pvWh" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/281704279" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/05/01/adobes-open-screen-project-and-the-future-of-interactive-development/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/05/01/adobes-open-screen-project-and-the-future-of-interactive-development/</feedburner:origLink></item>
		<item>
		<title>Using AS3 to Upload and Encode Images</title>
		<link>http://feeds.feedburner.com/~r/SubstanceLabs/~3/263452888/</link>
		<comments>http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 17:18:53 +0000</pubDate>
		<dc:creator>Shaun Tinney</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[file upload]]></category>

		<category><![CDATA[image encoding]]></category>

		<guid isPermaLink="false">http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/</guid>
		<description><![CDATA[UPDATE: 10/24/08
==============
After many requests, I&#8217;ve updated the demo and source files to work in IE6 (turned out to be a pathing issue), as well as Flash Player 10. FP10 disallows opening the download dialog without user interaction, so I&#8217;ve a download button to accommodate this change.
==============
Since launching Logobama, we&#8217;ve had a number of requests for [...]]]></description>
			<content:encoded><![CDATA[<p>UPDATE: 10/24/08<br />
==============<br />
After many requests, I&#8217;ve updated the <a href="http://labs.findsubstance.com/d/as3-upload-encode-images/">demo</a> and <a href="http://labs.findsubstance.com/d/as3-upload-encode-images/as3-upload-encode-images.zip">source</a> files to work in IE6 (turned out to be a pathing issue), as well as Flash Player 10. <a href="http://www.bit-101.com/blog/?p=1382">FP10 disallows opening the download dialog without user interaction</a>, so I&#8217;ve a download button to accommodate this change.<br />
==============</p>
<p>Since launching <a href="http://logobama.com" target="_blank">Logobama</a>, we&#8217;ve had a number of requests for the project source code. The process of saving images from Flash turns out to be a relatively simple one with Actionscript 3, and after some searching, uploading Flash encoded JPEGs to a web server was pretty simple as well.</p>
<p>With the Logobama project, we had three main objectives: </p>
<ol>
<li>Upload an image into a Flash file</li>
<li>Encode a JPEG with AS3</li>
<li>Post the encoded image to a web server</li>
</ol>
<p>In the case of Logobama, we also posted the saved image to a <a href="http://www.flickr.com/photos/logobama/" target="_blank">Flickr gallery</a>, which was done using the <a href="http://phpflickr.com" target="_blank">phpFlickr</a> library created by <a href="http://dancoulter.com/" target="_blank">Dan Coulter</a>. Thumbnails are automatically created with <a href="http://phpthumb.sourceforge.net/" target="_blank">phpThumb</a>.</p>
<p>The main engine behind this project is a combination of elements from the <a href="http://code.google.com/p/as3corelib/" target="_blank">Adobe AS3 Corelib</a>, and the very handy <a href="http://marstonstudio.com/index.php/2007/08/19/how-to-take-a-snapshot-of-a-flash-movie-and-automatically-upload-the-jpg-to-a-server-in-three-easy-steps/" target="_blank">UploadPostHelper Class</a> created by <a href="http://marstonstudio.com/index.php/about/" target="_blank">Jonathan Marston</a>. There is also a small PHP upload script included in the source, along with <a href="http://blog.greensock.com/tweenliteas3/" target="_blank">TweenLite</a>, which has quickly become our favorite tweening engine.</p>
<p>The basic system within the code nearly mirrors the Logobama project objectives:</p>
<h2>1. Use the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/FileReference.html" target="_blank">FileReference Class</a> to upload an image:</h2>
<pre><code>var file : FileReference = new FileReference();
file.browse( new Array( new FileFilter( "Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png" ) ) );
</code></pre>
<h2>2. Create a snapshot of the flash movie with the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html#draw()" target="_blank">BitmapData.draw()</a> method:</h2>
<pre><code>// set up a new bitmapdata object that matches the dimensions of the captureContainer;
var bmd : BitmapData = new BitmapData( captureContainer.width, captureContainer.height, true, 0xFFFFFFFF );

// draw the bitmapData from the captureContainer to the bitmapData object;
bmd.draw( captureContainer, new Matrix(), null, null, null, true );</code></pre>
<h2>3. Use the <a href="http://code.google.com/p/as3corelib/" target="_blank">Adobe AS3 Corelib</a> to encode a JPEG:</h2>
<pre><code>// create a new JPEG byte array with the adobe JPEGEncoder Class;
var byteArray : ByteArray = new JPGEncoder( 90 ).encode( bmd );</code></pre>
<h2>4. Post the encoded image to a web server with the help of the <a href="http://marstonstudio.com/index.php/2007/08/19/how-to-take-a-snapshot-of-a-flash-movie-and-automatically-upload-the-jpg-to-a-server-in-three-easy-steps/" target="_blank">UploadPostHelper Class</a> and a basic PHP Upload Script (included in the source files):</h2>
<pre><code>// set up the request &#038; headers for the image upload;
var urlRequest : URLRequest = new URLRequest();
urlRequest.url = 'image.php?path=images';
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData( 'image.jpg', byteArray );
urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) );

// create the image loader &#038; send the image to the server;
var urlLoader : URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load( urlRequest );
</code></pre>
<p>So there you have it, an easy way to upload images into flash, edit them, and post the encoded JPEG result to a web server without the need for any fancy remoting or server-side computation.</p>
<p>Since all the above code is available under a <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" target="_blank">Creative Commons Share Alike</a> license (or similar), we&#8217;ve decided to make our <a href="http://labs.findsubstance.com/d/as3-upload-encode-images/as3-upload-encode-images.zip">source code for this project</a> available as well. The functionality of <a href="http://labs.findsubstance.com/d/as3-upload-encode-images/">this example</a> was intentionally minimized to showcase the features outlined in this post. Enjoy, and please feel free to reply with comments, questions, or revisions.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=GFgfsNG"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=GFgfsNG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=lC3wSIg"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=lC3wSIg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=wdNFuZg"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=wdNFuZg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=mw7Wcng"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=mw7Wcng" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=vMOFm8G"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=vMOFm8G" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SubstanceLabs?a=knShMkg"><img src="http://feeds.feedburner.com/~f/SubstanceLabs?i=knShMkg" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SubstanceLabs/~4/263452888" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/feed/</wfw:commentRss>
		<feedburner:origLink>http://labs.findsubstance.com/2008/04/03/as3-upload-encode-images/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.488 seconds -->
