<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>ZaaLabs</title>
	
	<link>http://zaalabs.com</link>
	<description>Pronounced Zah</description>
	<lastBuildDate>Wed, 01 Feb 2012 02:58:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ZaaLabs" /><feedburner:info uri="zaalabs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>ZaaLabs</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Discontinuing the Eden Platform</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/37xDgZPB0t0/</link>
		<comments>http://zaalabs.com/2012/01/discontinuing-the-eden-platform/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 20:43:06 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Eden]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=340</guid>
		<description><![CDATA[We debuted the Eden platform about a year ago at the Flash Gaming Summit. Over the past year we learned a lot regarding the right and wrong way to build tooling, not just game tooling, but tooling in general. Here at ZaaLabs we consider ourselves to be workflow zealots. We&#8217;ve recently expanded our team to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://zaalabs.com/wp-content/uploads/2012/01/sad.png" alt="" title="sad" width="180" height="506" class="alignright size-full" style="background:none;border:none;" />We debuted the Eden platform about a year ago at the <a href="http://www.flashgamingsummit.com/">Flash Gaming Summit</a>.  Over the past year we learned a lot regarding the right and wrong way to build tooling, not just game tooling, but tooling in general.</p>
<p>Here at ZaaLabs we consider ourselves to be workflow zealots.  We&#8217;ve recently <a href="http://zaalabs.com/about/the-team/">expanded our team</a> to include a few exceptionally talented artists.  As Flash Game development moves into the Stage3D realm (not just 3D games, but 2D as well), tooling becomes incredibly important.  Most studios with a decent budget actually build custom tooling, tailored for the game.</p>
<p>The original goal for the Eden Platform was to make creating these custom tools for your game easier.  We had grand ideas of having a vast library of plugins where developers could pull pieces of functionality together so that you didn&#8217;t have to write tools from scratch.  We&#8217;re still fond of this idea, and believe it can work (but perhaps not a plugin based system).</p>
<p>However, when it came to starting a new project that required tooling, we found ourselves reusing pieces of code from Eden to retrofit into our new tooling.  The reason for this was because the plugin system we had built was overly complex to get working quickly and easily.  If we couldn&#8217;t get the plugin system working for our use case (the team who developed Eden in the first place)&#8230; how on earth is it be viable for other developers to use?</p>
<p>Other problems became apparent while developing Eden.  We chose to use Adobe Flex as the framework for our tooling system.  This caused MANY development issues while attempting to bend Flex (and the Flash Platform) in ways that were never envisioned:  runtime shared libraries, SDK compliance, the marshall plan, halo vs spark &#8211; this list goes on.  While Flex is a great framework for form-based, enterprise-level applications, getting it to play nicely with the Eden Platform was an insurmountable task for us.  (We are excited for what changes <a href="http://incubator.apache.org/flex/">Apache Flex</a> will bring).</p>
<p>So now, one year later, we find ourselves at a fork in the road.  We can either rebuild Eden from scratch or send it to greener pastures.  The Eden Platform development team has enjoyed the ride, but some of the team has decided that this is their stop.</p>
<p>So at this time, we are announcing the discontinuation of the Eden Platform.</p>
<p>This doesn&#8217;t mean that ZaaLabs has given up on the dream of building some of the industry&#8217;s best tools &#8211; far from it.   But it does mean that the Eden Platform will no longer be sold or supported.</p>
<p>If you have any questions or concerns, please feel free to <a href="http://zaalabs.com/contact/">contact us</a>.</p>
<p>And don&#8217;t worry about Hank (our superhero character), he&#8217;ll be back.</p>
<p>Cheers!</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/37xDgZPB0t0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2012/01/discontinuing-the-eden-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2012/01/discontinuing-the-eden-platform/</feedburner:origLink></item>
		<item>
		<title>Send us your Tiff files!</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/qhnDEEfQquQ/</link>
		<comments>http://zaalabs.com/2011/11/send-us-your-tiff-files/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 21:22:42 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[TIFF]]></category>
		<category><![CDATA[ZaaIL]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=331</guid>
		<description><![CDATA[Back in April of 2010 we introduced ZaaIL, which was an Alchemy port of the open source C DevIL image library. ZaaIL was released to our labs as simply an experimental project to serve a specific purpose and to also allow for us to learn the ins and outs of Adobe&#8217;s Alchemy project. Since our [...]]]></description>
			<content:encoded><![CDATA[<p>Back in April of 2010 we introduced <a href="http://zaalabs.com/2010/04/introducing-zaail-40-image-format-support-for-flash/">ZaaIL</a>, which was an Alchemy port of the open source C <a href="http://openil.sourceforge.net/">DevIL</a> image library.  ZaaIL was released to our labs as simply an experimental project to serve a specific purpose and to also allow for us to learn the ins and outs of Adobe&#8217;s Alchemy project.</p>
<p>Since our release of ZaaIL, there have been loads of questions and clients who have contacted us regarding deeper support of three formats: TIFF, JP2000 and DICOM.</p>
<p>We&#8217;re happy to announce that ZaaLabs has addressed the first of those three image formats, the TIFF format.</p>
<h2>ZaaTiff (AS3 and JavaScript)</h2>
<p>We currently have a build of what we&#8217;re calling our ZaaTiff library.  Below you can see screenshot of us parsing a TIFF file and displaying it in Flash in the browser.  We have also built a very rudimentary document viewer using minimal comps.</p>
<p><a href="http://zaalabs.com/wp-content/uploads/2011/11/ZaaTiffAS3.png"><img src="http://zaalabs.com/wp-content/uploads/2011/11/ZaaTiffAS3.png" width="600" /></a></p>
<p>We also have built out an ExternalInterface JavaScript bridge.</p>
<p><a href="http://zaalabs.com/wp-content/uploads/2011/11/ZaaTiffAS3_JSHook.png"><img src="http://zaalabs.com/wp-content/uploads/2011/11/ZaaTiffAS3_JSHook.png" width="600" /></a></p>
<p>And finally, we have also built out an experimental JavaScript version of the TIFF Parser which renders to an HTML5 Canvas.</p>
<p><a href="http://zaalabs.com/wp-content/uploads/2011/11/ZaaTiffJS.png"><img src="http://zaalabs.com/wp-content/uploads/2011/11/ZaaTiffJS.png" width="600" /></a></p>
<h2>We need your help!</h2>
<p>The TIFF file specification is expansive, and finding test images of all the different formats is quite difficult.  In an effort to make ZaaTiff all-encompassing, we need more test images of varying types.</p>
<h3>What we&#8217;re looking for:</h3>
<ul>
<li>1 Bit Per Pixel / Group 3 1D / CCITT modified Huffman RLE</li>
<li>1 Bit Per Pixel / Group 3 2D / CCITT Group 3 fax encoding</li>
<li>1 Bit Per Pixel / Group 4 2D / CCITT Group 4 fax encoding</li>
<li>8 Bits Per Pixel / JPEG Compression</li>
<li>8 Bits Per Pixel / LZW Compression</li>
<li>24 Bits Per Pixel / LZW Compression</li>
<li>24 Bits Per Pixel / JPEG Compression</li>
<li>Pretty much any TIFF file&#8230;</li>
</ul>
<p>If you have TIFF files sitting around, email them to <b>info [at] zaalabs [dot] com</a></b>, with the subject of <b>&#8220;ZaaTiff Test Image&#8221;</b>.  </p>
<p>Any questions, comments, etc&#8230; feel free to comment below.</p>
<p>Thanks!</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/qhnDEEfQquQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/11/send-us-your-tiff-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/11/send-us-your-tiff-files/</feedburner:origLink></item>
		<item>
		<title>Ninjatude – Main Character Wardrobe</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/OHhXugdOgWE/</link>
		<comments>http://zaalabs.com/2011/05/ninjatude-main-character-wardrobe/#comments</comments>
		<pubDate>Wed, 18 May 2011 19:31:14 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Ninjatude]]></category>
		<category><![CDATA[Wardrobe]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=312</guid>
		<description><![CDATA[So we&#8217;re conceptualizing what wardrobe our main character is going to wear in Ninjatude. Since a name hasn&#8217;t been finalized yet, we will refer to the main character as &#8220;The Ninja&#8221; Set #1 Set #2 We&#8217;d love to hear your thoughts. Cheers, The ZaaLabs Ninjatude Team]]></description>
			<content:encoded><![CDATA[<p>So we&#8217;re conceptualizing what wardrobe our main character is going to wear in Ninjatude.  Since <a href="http://zaalabs.com/2011/05/announcing-ninjatude/">a name hasn&#8217;t been finalized</a> yet, we will refer to the main character as &#8220;The Ninja&#8221;</p>
<h2>Set #1</h2>
<p><a href="http://zaalabs.com/wp-content/uploads/2011/05/ninjatude_concept_costume002.jpg"><img src="http://zaalabs.com/wp-content/uploads/2011/05/ninjatude_concept_costume002-300x166.jpg" alt="" title="Costume Set 1" width="300" height="166" class="aligncenter size-medium wp-image-313" /></a></p>
<h2>Set #2</h2>
<p><a href="http://zaalabs.com/wp-content/uploads/2011/05/ninjatude_concept_costume003.jpg"><img src="http://zaalabs.com/wp-content/uploads/2011/05/ninjatude_concept_costume003-222x300.jpg" alt="" title="ninjatude_concept_costume003" width="222" height="300" class="aligncenter size-medium wp-image-314" /></a></p>
<p>We&#8217;d love to hear your thoughts.</p>
<p>Cheers,<br />
The ZaaLabs Ninjatude Team</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/OHhXugdOgWE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/05/ninjatude-main-character-wardrobe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/05/ninjatude-main-character-wardrobe/</feedburner:origLink></item>
		<item>
		<title>What the heck is Eden?</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/yjWGbEZ1yus/</link>
		<comments>http://zaalabs.com/2011/05/what-the-heck-is-eden/#comments</comments>
		<pubDate>Tue, 17 May 2011 01:17:48 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Eden]]></category>
		<category><![CDATA[Examples]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=308</guid>
		<description><![CDATA[Eden has been discontinued, this post is here for posterity&#8217;s sake So we&#8217;ve been talking a lot about the Eden Platform, but people are still confused about what it is. This video is a tour of Eden, specifically showing how it is being used in the development process of PushButton Labs&#8217; upcoming game, Grunts: Skirmish.]]></description>
			<content:encoded><![CDATA[<h1>Eden has <a href="http://zaalabs.com/2012/01/discontinuing-the-eden-platform/">been discontinued</a>, this post is here for posterity&#8217;s sake</h1>
<p>So we&#8217;ve been talking a lot about the Eden Platform, but people are still confused about what it is.  This video is a tour of Eden, specifically showing how it is being used in the development process of <a href="http://www.pblabs.com">PushButton Labs&#8217;</a> upcoming  game, <a href="http://www.playgrunts.com">Grunts: Skirmish</a>.</p>
<p><iframe src="http://player.vimeo.com/video/23823196?byline=0" width="600" height="337" frameborder="0"></iframe></p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/yjWGbEZ1yus" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/05/what-the-heck-is-eden/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/05/what-the-heck-is-eden/</feedburner:origLink></item>
		<item>
		<title>Announcing Ninjatude</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/QjPdGKeQ9pQ/</link>
		<comments>http://zaalabs.com/2011/05/announcing-ninjatude/#comments</comments>
		<pubDate>Thu, 12 May 2011 17:22:01 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Ninjatude]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=292</guid>
		<description><![CDATA[This morning I would like to announce publicly that we&#8217;re currently developing a new cross-platform, cross-device game code named: Ninjatude. Ninjatude is being built on top of the latest Adobe Flash / Adobe AIR platform. In a place known as The Forest (at least by the locals), there exists a clan of Ninja Squirrels who [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I would like to announce publicly that we&#8217;re currently developing a new cross-platform, cross-device game code named: Ninjatude.  Ninjatude is being built on top of the latest Adobe Flash / Adobe AIR platform.</p>
<blockquote><p>In a place known as The Forest (at least by the locals), there exists a clan of Ninja Squirrels who fight to keep the peace. Filled with the power of their greatest treasure, the mystic Golden Acorn, they root out evil and defend the creatures of the trees. Of course, since no good deeds go unpunished, the Ninja find their great treasure stolen away in the night. Deprived of their strength and ability, the Squirrels have sent out their best lone warrior to retrieve the Acorn.</p></blockquote>
<p><img src="http://zaalabs.com/wp-content/uploads/2011/05/ninjatude_illust_headon.jpg" width="600" /></p>
<p>We&#8217;re working with a stellar team of Game Designers, Artists and Developers coming to us from <a href="https://www.digipen.edu/">Digipen</a>.</p>
<h1>We need your help</h1>
<p>I&#8217;d like to introduce you to our main character&#8230; who has yet to be named.  So we need your help.  Put your suggestions for names in the comments below. Here is some more concept art to get you thinking.</p>
<p><img src="http://zaalabs.com/wp-content/uploads/2011/05/acorn.png"><br />
<img src="http://zaalabs.com/wp-content/uploads/2011/05/flip.png"></p>
<p>More information will be coming soon.  So be sure to keep checking back here.</p>
<p>Cheers!</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/QjPdGKeQ9pQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/05/announcing-ninjatude/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/05/announcing-ninjatude/</feedburner:origLink></item>
		<item>
		<title>360|Flex Denver 2011 Videos on ZaaTV</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/8Hc3cRHrFw0/</link>
		<comments>http://zaalabs.com/2011/04/360flex-denver-2011-videos-on-zaatv/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 03:55:49 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[ZaaTV]]></category>
		<category><![CDATA[360|Flex]]></category>
		<category><![CDATA[Denver]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=289</guid>
		<description><![CDATA[:: UPDATE :: &#8211; We have begun posting 360&#124;Flex Videos on ZaaTV, check them out. As many of you know, ZaaLabs was in charge of the recording 360&#124;Flex Denver. The conference was fantastic, one of the best I&#8217;ve been to. Since the conference I&#8217;ve been getting questions non-stop about the availability of the videos. So [...]]]></description>
			<content:encoded><![CDATA[<p><b>:: UPDATE ::</b> &#8211; We have begun posting 360|Flex Videos on ZaaTV, <a href="http://zaa.tv/tag/360flex/">check them out</a>.</p>
<p>As many of you know, ZaaLabs was in charge of the recording <a href="http://www.360flex.com">360|Flex Denver</a>.  The conference was fantastic, one of the best I&#8217;ve been to.</p>
<p>Since the conference I&#8217;ve been getting questions non-stop about the availability of the videos.  So here&#8217;s the deal.</p>
<p>We&#8217;re currently in the process of importing the videos&#8230; which let me tell you is a task <img src='http://zaalabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img src="http://zaalabs.com/wp-content/uploads/2011/04/IMG_20110419_134148.jpg" width="600" /></p>
<p>Once we finish importing we&#8217;re going to edit a few videos to release right away on <a href="http://zaa.tv">ZaaTV</a>, free for everyone (I&#8217;ll update these with links as the become available):</p>
<ul>
<li><a href="http://zaa.tv/2011/04/360flex-denver-2011-day-1-keynote/">Day 1 &#8211; Keynote</a></li>
<li><a href="http://zaa.tv/2011/04/360flex-denver-2011–day-2-keynote-spoon/">Day 2 &#8211; Keynote &#8211; Spooooon!</a></li>
<li><a href="http://zaa.tv/2011/04/360flex-denver-2011-what’s-new-in-flex-sdk-4-5/">Deepa Subramaniam &#8211; What&#8217;s New in Flex SDK 4.5</a></li>
<li><a href="http://zaa.tv/2011/04/360flex-denver-2011-multi-density-multi-platform-application-development/">Narisco (NJ) Jaramillo &#8211; Multi-Density &#038; Multi-Platform Application Development</a></li>
<li><b>DELAYED &#8211; Audio issues</b> &#8211; Sreenivas Ramaswamy &#8211; Flash Builder Tips &#038; Tricks</li>
<li><a href="http://zaa.tv/2011/06/360flex-denver-2011-flex-performance-tips-and-tricks/">Evtim Georgiev &#038; Steve Shongrunden &#8211; Flex Performance Tips &#038; Tricks</a></li>
<li><a href="http://zaa.tv/2011/04/360flex-denver-2011-whats-new-in-flash-builder-4-5/">Adam Lehman + Special Guests &#8211; What&#8217;s New in Flash Builder 4.5</a></li>
<li><b>DELAYED &#8211; Audio issues</b> &#8211; Jacob Surber &#038; Peter Flynn &#8211; What&#8217;s new in Flash Catalyst Panini</li>
</ul>
<p>After we get these first few videos online, there are a few options for the rest of the sessions.</p>
<h2>I was at 360|Flex Denver</h2>
<p>If you attended 360|Flex in Denver, you will be able to download the videos for free as soon as they are available (be aware it will take a couple of months).</p>
<h2>I wasn&#8217;t there, but I want the videos now.</h2>
<p>Well then you are in luck, if you didn&#8217;t attend 360|Flex but you would like to get the videos sooner rather than later, you can buy them from the 360|Flex website as soon as they are available.</p>
<h2>I wasn&#8217;t there, and I&#8217;m not interested in purchasing the videos.</h2>
<p>That&#8217;s okay too!  Going forward, we will release one session per week free on ZaaTV.  We will have polls for you guys to vote for which session you want to see next.</p>
<p>Any questions, let us know!</p>
<p>Cheers!</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/8Hc3cRHrFw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/04/360flex-denver-2011-videos-on-zaatv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/04/360flex-denver-2011-videos-on-zaatv/</feedburner:origLink></item>
		<item>
		<title>ZaaImbue, A dead-simple injection system for Flash</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/A_gBYfcgPSM/</link>
		<comments>http://zaalabs.com/2011/03/zaaimbue-a-dead-simple-injection-system-for-flash/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 18:24:32 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[PushButton Engine]]></category>
		<category><![CDATA[ZaaImbue]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=227</guid>
		<description><![CDATA[Yesterday in the PushButton Engine IRC channel, we were discussing our need for metadata based injection for the next version of PushButton Engine. While developing Eden, we encountered a similar problem and ended up writing our own injection system. We&#8217;re fond of it, and wanted to use it in PBE&#8230; so we open sourced it. [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday in the <a href="irc://irc.freenode.net/#pbengine">PushButton Engine IRC channel</a>, we were discussing our need for metadata based injection for the <a href="https://github.com/PushButtonLabs/PushButtonEngine/tree/PBENext">next version</a> of PushButton Engine.</p>
<p>While developing Eden, we encountered a similar problem and ended up writing our own injection system.  We&#8217;re fond of it, and wanted to use it in PBE&#8230; so we open sourced it.  Take it, use it, modify it&#8230; we&#8217;re releasing it under the <a href="https://github.com/ZaaLabs/ZaaImbue/blob/master/license.txt">MIT License</a>.</p>
<p>Check out the source <a href="https://github.com/ZaaLabs/ZaaImbue">over on GitHub</a>.</p>
<p>Make sure you add this to your compiler arguments:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">-keep-as3-metadata+=Inject,PostInject</pre></div></div>

<p>Here&#8217;s a basic example of using ZaaImbue:<br />
<div id="gist-871172" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="kd">package</span></div><div class='line' id='LC2'><span class="o">{</span></div><div class='line' id='LC3'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">import</span> <span class="nn">com.zaalabs.imbue.IInjector</span><span class="o">;</span></div><div class='line' id='LC4'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">import</span> <span class="nn">com.zaalabs.imbue.Injector</span><span class="o">;</span></div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">import</span> <span class="nn">flash.display.Sprite</span><span class="o">;</span></div><div class='line' id='LC7'><br/></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">public</span> <span class="kd">class</span> <span class="n">ImbueExample</span> <span class="kd">extends</span> <span class="n">Sprite</span></div><div class='line' id='LC9'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">{</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">[</span><span class="n">Inject</span><span class="o">]</span> </div><div class='line' id='LC12'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// this will inject an instance of ExampleClass into this property</span></div><div class='line' id='LC13'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">public</span> <span class="kd">var</span> <span class="n">myFirstInjectedInstance</span><span class="p">:</span><span class="kt">ExampleClass</span><span class="o">;</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">[</span><span class="n">Inject</span><span class="o">]</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// this will inject an instance of AnotherExampleClass into this property</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">public</span> <span class="kd">var</span> <span class="n">mySecondInjectedInstance</span><span class="p">:</span><span class="kt">AnotherExampleClass</span><span class="o">;</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">public</span> <span class="kd">function </span><span class="nf">ImbueExample</span><span class="o">()</span></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">{</span></div><div class='line' id='LC21'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// create an instance of the classes we want to inject</span></div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="n">myLocalMember</span><span class="p">:</span><span class="kt">ExampleClass</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">ExampleClass</span><span class="o">();</span></div><div class='line' id='LC23'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="n">anotherLocalMember</span><span class="p">:</span><span class="kt">AnotherExampleClass</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">AnotherExampleClass</span><span class="o">();</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// This is actually all it takes to inject something</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="n">injector</span><span class="p">:</span><span class="kt">IInjector</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">Injector</span><span class="o">();</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">injector</span><span class="o">.</span><span class="na">mapValue</span><span class="o">(</span><span class="n">myLocalMember</span><span class="o">,</span> <span class="n">ExampleClass</span><span class="o">);</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">injector</span><span class="o">.</span><span class="na">mapValue</span><span class="o">(</span><span class="n">anotherLocalMember</span><span class="o">,</span> <span class="n">AnotherExampleClass</span><span class="o">);</span></div><div class='line' id='LC29'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// apply the injections!</span></div><div class='line' id='LC30'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">injector</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="k">this</span><span class="o">);</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">}</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">[</span><span class="n">PostInject</span><span class="o">]</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// This gets called after an injection has occurred on the target</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">public</span> <span class="kd">function </span><span class="nf">onPostInject</span><span class="o">():</span><span class="kt">void</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">{</span></div><div class='line' id='LC37'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nf">trace</span><span class="o">(</span><span class="s2">&quot;We are all done injecting, now we can use our instance!&quot;</span><span class="o">);</span></div><div class='line' id='LC38'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nf">trace</span><span class="o">(</span><span class="s2">&quot;Name of first injected instance:&quot;</span><span class="o">,</span> <span class="n">myFirstInjectedInstance</span><span class="o">.</span><span class="na">name</span><span class="o">);</span></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nf">trace</span><span class="o">(</span><span class="s2">&quot;Name of second injected instance:&quot;</span><span class="o">,</span> <span class="n">mySecondInjectedInstance</span><span class="o">.</span><span class="na">name</span><span class="o">)</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">}</span></div><div class='line' id='LC41'><br/></div><div class='line' id='LC42'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">}</span></div><div class='line' id='LC43'><span class="o">}</span></div><div class='line' id='LC44'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/871172/cdbbf9fe20149b1af2e3d436fe4e0133d022ffbd/ImbueExample.as" style="float:right;">view raw</a>
            <a href="https://gist.github.com/871172#file_imbue_example.as" style="float:right;margin-right:10px;color:#666">ImbueExample.as</a>
            <a href="https://gist.github.com/871172">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>Some people have asked us why we called it &#8220;Imbue&#8221;&#8230; frankly&#8230; we didn&#8217;t want to call it Injection, so we looked up synonyms on the interwebs and imbue was one of them.</p>
<p>We all played a lot of Diablo 2, and had fond memories of Charsi imbuing our gear with magical properties&#8230; and that&#8217;s where imbue came from. </p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/A_gBYfcgPSM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/03/zaaimbue-a-dead-simple-injection-system-for-flash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/03/zaaimbue-a-dead-simple-injection-system-for-flash/</feedburner:origLink></item>
		<item>
		<title>ZaaLabs on RIARadio</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/0uLmdamB3rk/</link>
		<comments>http://zaalabs.com/2011/03/zaalabs-on-riaradio/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 23:45:41 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Eden]]></category>
		<category><![CDATA[RIARadio]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=225</guid>
		<description><![CDATA[We had the opportunity to go on RIARadio this past weekend to talk about the Eden Platform. Check it out over here&#8230; or listen to it below:]]></description>
			<content:encoded><![CDATA[<p>We had the opportunity to go on <a href="http://riaradio.com/">RIARadio</a> this past weekend to talk about the <a href="http://www.zaalabs.com/eden">Eden Platform</a>.  Check it out <a href="http://blog.riaradio.com/post/3704886539/episode-21-eden">over here</a>&#8230; or listen to it below:</p>
<p><object height="384" width="480"><param name="allowScriptAccess" value="always"/><param name="allowFullScreen" value="true"/><param name="movie" value="http://player.wizzard.tv/player/o/i/x/129954125639/config/k-ef1b50ba623f7476/uuid/null/episode/k-9954be6ed2acd31b"/><embed src="http://player.wizzard.tv/player/o/i/x/129954125639/config/k-ef1b50ba623f7476/uuid/null/episode/k-9954be6ed2acd31b" name="movie" menu="false" type="application/x-shockwave-flash" AllowScriptAccess="always" AllowFullScreen="true" width="480" height="384"/></object></p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/0uLmdamB3rk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/03/zaalabs-on-riaradio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/03/zaalabs-on-riaradio/</feedburner:origLink></item>
		<item>
		<title>ZaaLabs T-Shirts!</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/heUUgyfuXqM/</link>
		<comments>http://zaalabs.com/2011/02/zaalabs-t-shirts/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 03:10:15 +0000</pubDate>
		<dc:creator>nate</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://zaalabs.com/?p=190</guid>
		<description><![CDATA[Our ZaaLabs T-Shirts just showed up&#8230; and they are, dare I say it&#8230; Legendary! Exhibit A: And for those of you who need to see the shirt on a model&#8230; here&#8217;s the lovely Erin showing us how to rock this awesome t-shirt. How can I get one? There will be three of us wearing this [...]]]></description>
			<content:encoded><![CDATA[<p>Our ZaaLabs T-Shirts just showed up&#8230; and they are, dare I say it&#8230; Legendary!</p>
<h1>Exhibit A:</h1>
<p><img width="600" src="http://zaalabs.com/wp-content/uploads/2011/02/IMG_20110223_184213-1024x768.jpg" /><br />
<img width="600" src="http://zaalabs.com/wp-content/uploads/2011/02/IMG_20110223_184230-1024x768.jpg" /></p>
<p>And for those of you who need to see the shirt on a model&#8230; here&#8217;s the lovely Erin showing us how to rock this awesome t-shirt.<br />
<img src="http://zaalabs.com/wp-content/uploads/2011/02/IMG_20110223_184043-768x1024.jpg" /></p>
<h1>How can I get one?</h1>
<p>There will be three of us wearing this shirt at the <a href="http://www.flashgamingsummit.com/">Flash Gaming Summit</a> on Sunday.  All you have to do is come up and introduce yourself, and you get a shirt&#8230; while supplies last <img src='http://zaalabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>See you there!</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/heUUgyfuXqM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/02/zaalabs-t-shirts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/02/zaalabs-t-shirts/</feedburner:origLink></item>
		<item>
		<title>Adobe Flex to JavaScript… why Conversion is Hard</title>
		<link>http://feedproxy.google.com/~r/ZaaLabs/~3/1OPGAOGnmh4/</link>
		<comments>http://zaalabs.com/2011/01/adobe-flex-to-javascript-why-conversion-is-hard/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 19:42:58 +0000</pubDate>
		<dc:creator>boushley</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Labs]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[daily insights]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.zaalabs.com/?p=87</guid>
		<description><![CDATA[I recently had a conversation with Simeon Bateman regarding the woes of mobile web development. We realized one of the reasons why Flex developers as in general have a hard time embracing JavaScript development. The Problem The particular JavaScript quirk we were discussing was window.innerHeight functions on mobile devices.  During our development on mobile devices, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a conversation with <a href="http://blog.simb.net">Simeon Bateman</a> regarding the woes of mobile web development.  We realized one of the reasons why Flex developers as in general have a hard time embracing JavaScript development.</p>
<h3>The Problem</h3>
<p>The particular JavaScript quirk we were discussing was window.innerHeight functions on mobile devices.  During our development on mobile devices, we ran into two frustrating issues.</p>
<p>Simeon&#8217;s issue was with the way window dimensions get messed up when an Android device is re-oriented.</p>
<p>My issue was with the way that window.innerHeight tells you how much space you have with the url bar on the screen, until the url bar is scrolled off the screen, then it reports the actual space that you can work with (since this is my post we&#8217;ll talk about my problem). This issue if frustrating because I&#8217;m trying to get a webpage to take up the whole screen on the mobile device, with the url bar scrolled out of view.</p>
<p>To illustrate what I&#8217;m discussing, I&#8217;ll show side by side screenshots.  The screenshot is of a page that reports the screen height and width and the window innerHeight and width and updates them on an interval.  On the left you have the URL bar, on the right the URL bar has been scrolled off the screen.  Notice how the screen size has remained the same, but the window.innerHeight has changed.</p>
<div style="overflow: auto;"><a href="http://www.zaalabs.com/wp-content/uploads/2011/01/innerHeight_withUrl.png"><img class="alignleft size-full wp-image-88" title="innerHeight_withUrl" src="http://www.zaalabs.com/wp-content/uploads/2011/01/innerHeight_withUrl.png" alt="Window Size with URL bar" width="250" /></a><a href="http://www.zaalabs.com/wp-content/uploads/2011/01/innerHeight_noUrl.png"><img class="alignright size-full wp-image-88" title="innerHeight_noUrl" src="http://www.zaalabs.com/wp-content/uploads/2011/01/innerHeight_noUrl.png" alt="Window Inner Height without URL bar" width="250" /></a></div>
<p>We both understood the problems we faced, but both believed there had to be a good and right way to solve the problem, a &#8220;best practice&#8221; if you will.  Having spent time working in the Flex community, we had come to expect an elegant way of solving the issues we faced.</p>
<p>Neither of us are foreign to forging our own paths through new territory, but we&#8217;re generally used to coming to a solution that feels right.  When things start getting hacky we feel like we&#8217;re in the wrong place and try to research the problem looking for a more elegant solution.</p>
<h3>Finding A Solution</h3>
<p>In our scenario with window.innerHeight we were trying to think how we could go about getting the height of the space we can use in an elegant fashion, and couldn&#8217;t come up with anything.  We knew how to accomplish our tasks in an inelegant fashion, but thought it was a common enough task that there would be a &#8220;right&#8221; or elegant solution.</p>
<p>Finally we realized that we knew of people out there who were doing what we wanted, and this is JavaScript after all, so we went and looked at the source.  We checked in a few places, and discovered that most of the places we checked handled this problem in a similar way.  The great guys over at <a title="Sencha" href="http://www.sencha.com/" target="_blank">Sencha</a> had this in their code for handling this problem and making sure the application is the correct size.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">init<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>c<span style="color: #339933;">,</span> b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> d <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">,</span>
        e <span style="color: #339933;">=</span> Math.<span style="color: #660066;">max</span><span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">innerHeight</span><span style="color: #339933;">,</span> window.<span style="color: #660066;">innerWidth</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span>
        a <span style="color: #339933;">=</span> Ext.<span style="color: #660066;">getBody</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    d.<span style="color: #660066;">updateOrientation</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">initialHeight</span> <span style="color: #339933;">=</span> window.<span style="color: #660066;">innerHeight</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">initialOrientation</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">orientation</span><span style="color: #339933;">;</span>
    a.<span style="color: #660066;">setHeight</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    Ext.<span style="color: #660066;">gesture</span>.<span style="color: #660066;">Manager</span>.<span style="color: #660066;">freeze</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">scrollToTop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        d.<span style="color: #660066;">scrollToTop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            d.<span style="color: #660066;">scrollToTop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            d.<span style="color: #660066;">initialHeight</span> <span style="color: #339933;">=</span> Math.<span style="color: #660066;">max</span><span style="color: #009900;">&#40;</span>d.<span style="color: #660066;">initialHeight</span><span style="color: #339933;">,</span> window.<span style="color: #660066;">innerHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                c.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span>b <span style="color: #339933;">||</span> window<span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#125;</span>
            d.<span style="color: #660066;">updateBodySize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            Ext.<span style="color: #660066;">gesture</span>.<span style="color: #660066;">Manager</span>.<span style="color: #660066;">thaw</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">500</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The variable names are not great as its <a href="http://jsbeautifier.org/" target="_blank">beautified</a> <a href="http://dev.sencha.com/deploy/touch/sencha-touch.js" target="_blank">code</a> that was minified, but if you follow it you can see what they&#8217;re doing.</p>
<p>In order to size the app to the proper height and be able to have the url bar scrolled off the top, they have to double the size of the container, to ensure that they can scroll past the url bar.  Then they scroll&#8230; twice on 500ms timeouts, and then they can fix the size of the app to bring the size down to what it really is without the url bar, since window.innerHeight will now report they value they want.</p>
<h3>The Difference</h3>
<p>This is where JavaScript development diverges from Adobe Flex development.  The fractured landscape of so many browsers and the impossibility of getting users to upgrade in a timely manner has left JavaScript developers with no choice but to hack their way through.</p>
<p>This is not to say that JavaScript lacks elegance&#8230; but that there are some areas where the hack is just what you need to do.</p>
<p>In Flex there are times where you need to implement a hack, but you generally implement it as a patch to the <a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK" target="_blank">Flex SDK</a> and your application code is spared the hack.  This example underscores one of the big issues that Flex developers face as they move from the world of the Flash Player to the fractured world of browsers.  To a Flex developer this feels like an inelegant hack, but to a JavaScript developer this is a great solution, because it works across all the different platforms we need to support.</p>
<h3>Conclusion</h3>
<p>I don&#8217;t present this information as a way of excusing Flex Developers from exploring HTML/JS development, but wanted to help developers understand this difference that can help on both platforms.</p>
<p>With this new found understanding if you feel like hopping into some HTML/JS development, may I suggest another <a href="http://www.simb.net/2011/01/22/html-for-flex-developers/" target="_blank">article, by Simeon Bateman</a>.</p>
<img src="http://feeds.feedburner.com/~r/ZaaLabs/~4/1OPGAOGnmh4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zaalabs.com/2011/01/adobe-flex-to-javascript-why-conversion-is-hard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://zaalabs.com/2011/01/adobe-flex-to-javascript-why-conversion-is-hard/</feedburner:origLink></item>
	</channel>
</rss>

