<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	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/"
	>

<channel>
	<title>Airtight News</title>
	<atom:link href="http://www.airtightinteractive.com/news/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.airtightinteractive.com/news</link>
	<description>News about Flash, technology and design.</description>
	<lastBuildDate>Thu, 29 Oct 2009 06:48:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Welcoming Our New Google Overlords (or Why I Chose Android Over the iPhone)</title>
		<link>http://www.airtightinteractive.com/news/?p=390</link>
		<comments>http://www.airtightinteractive.com/news/?p=390#comments</comments>
		<pubDate>Thu, 29 Oct 2009 05:36:18 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=390</guid>
		<description><![CDATA[With the new Motorola Droid announced today, the web is a-twitter with smartphone opinions. This is a topic that people care about, since picking a smartphone is essentially choosing which mobile computer platform you will be using 24/7 for the next few years. Last year, like many tech nerds, I was plagued with the choice [...]]]></description>
			<content:encoded><![CDATA[<p>With the new <a href="http://www.crunchgear.com/2009/10/28/hands-on-with-the-motorola-droid-sexy/">Motorola Droid</a> announced today, the web is a-twitter with smartphone opinions. This is a topic that people care about, since picking a smartphone is essentially choosing which mobile computer platform you will be using 24/7 for the next few years. Last year, like many tech nerds, I was plagued with the choice of which new phone to get. For me it was a toss up between the <a href="http://www.apple.com/iphone/">iPhone</a> and the <a href="http://reviews.cnet.com/smartphones/t-mobile-g1-black/4505-6452_7-33283585.html">G1</a> (the only Android phone available at the time). In the end I went with the G1. Here are the factors that were important to me and why Android won:  </p>
<h3>Aesthetics</h3>
<p>There&#8217;s no doubt about it &#8211; the iPhone is one of the sexiest pieces of hardware ever built. It&#8217;s a beautiful object straight from the future. The UI is slick, elegant, simple and miles ahead of the competition.</p>
<p>In comparison the G1 is a utilitarian, brick-like lump. It&#8217;s a bit like comparing a 1980&#8217;s Land Rover to a brand new Audi TT. Which you prefer comes down to personal taste. For the record, <em>no one cares how cool your phone looks</em>. Anyone buying an iPhone to improve their chances of getting laid has a sad series of disappointments ahead of them.</p>
<h3>Speed</h3>
<p>Although <a href="http://www.crunchbase.com/person/mg-siegler">TechCrunch</a> routinely bashes the G1&#8217;s speed, I&#8217;ve never had a problem with either the OS responsiveness or the web download speed. it. In my completely unscientific testing, the web download speed on the G1 consistently beats my friend&#8217;s iPhones.</p>
<p>Especially in nerd-friendly cities like San Francisco, AT&#038;T&#8217;s 3G network is completely saturated with all the other iPhone users uploading videos of their cat. In comparison, T-Mobile&#8217;s 3G network is a traffic-free 6 lane highway.</p>
<h3>Development Platform</h3>
<p>Even ignoring Apple&#8217;s bafflingly opaque app approval process, developing for the iPhone is a pain. The iPhone&#8217;s arcane development process involves mastering pointers and memory management in Objective-C. AFAIK these skills are not transferable to any other platform. Developing for Android requires Java on Eclipse which seems much more reasonable. Also, the iPhone app store is already completely saturated. With Android usage about to explode, now is probably a good time to get into Android dev.</p>
<h3>Openness</h3>
<p>If you use are using an iPhone with Apple&#8217;s <a href="http://www.apple.com/mobileme/">MobileMe</a>, your personal data (email, contacts and calendar) is only transferable to another iPhone. Android seamlessly syncs with gMail, gCalender and Google&#8217;s contact list. If you use these tools it is trivial to switch between Android phones, or for that matter any device that can access the web. </p>
<p>A good example of the two company&#8217;s different attitudes toward data portability is Google&#8217;s <a href="http://picasa.google.com">Picasa</a> versus Apple&#8217;s <a href="http://www.apple.com/ilife/iphoto/">iPhoto</a>. Both are great personal photo management applications. The difference is iPhoto locks you photos into a single monolithic proprietary file whereas Picasa works with your existing photo file structure. iPhoto does not allow you to share your library with anything except for other iPhoto instances.</p>
<p>Since Apple make money off hardware sales they are keen to lock you into their proprietary systems. Google are platform agnostic and have a proven commitment to keeping data sharable. The <a href="http://www.dataliberation.org/">Data Liberation Front</a> initiative is a good example of this. </p>
<h3>Monetization Strategy</h3>
<p>There is a big difference in how Apple and Google make money, and this has a profound effect on the nature of their phone OSs.</p>
<p>Apple make money on the iPhone by selling the hardware and by taxing you every time you use the app store. The app store offers no trials and no refunds. Apple takes 30% of every purchase. Apple want you to buy as many apps as possible. They are re-using the iTunes model that has been so successful in generating revenue for them.</p>
<p>Steve Ballmer touches on this in his <a href="http://daringfireball.net/linked/2009/10/22/ballmer-app-count">much ridiculed</a>  quote: </p>
<blockquote><p>&#8220;The Internet is not designed for the iPhone. That’s why they’ve got 75,000 applications — they’re all trying to make the Internet look decent on the iPhone.”</p></blockquote>
<p>There is actually some truth to this quote. If I have a fast and full-featured web browser why do I need  a <a href="http://www.yelp.com">Yelp</a> app? I can just go to yelp.com. Why do I need a dictionary app when I can go to dictionary.com? Why do I need to buy a bunch of crappy games when I can find millions for free on the web? God knows how much some iPhone devotees have invested in their iPhone in terms of app purchases alone. I prefer to buy the hardware once, then get the content for free. That&#8217;s the beauty of the internet.</p>
<p>Related to this is the fact that Apple won&#8217;t allow Flash on the iPhone. They have a very good reason &#8211; if Flash ran well on the iPhone, half of the apps in the app store would become redundant. In contrast Google just signed up for the <a href="http://googleblog.blogspot.com/2009/10/teaming-up-with-adobe-and-open-screen.html">Open Screen Project</a> and are committed to making Flash run well on Android. For better or worse, Flash is tightly ingrained into the web and any device that doesn&#8217;t support it is half-cocked.</p>
<p>Google&#8217;s monetization scheme is a lot more vague, long term and possibly nefarious. They can afford to give away Android for free in exchange for the potential to make money from mobile searches. In general, Google&#8217;s plan is to become so useful and ubiquitous that they become an indispensable part of all of our lives. After that, who knows? Since they have a virtual gold mine in AdWords revenue they can afford to put their efforts into long term world domination. (As an aside, does anyone understand how Google makes so much money from text ads that nobody ever clicks?) </p>
<h3>Reliability</h3>
<p>The iPhone hardware is beautiful, but if it fails at the same rate that <a href="http://www.airtightinteractive.com/news/?p=63">my iPods have failed</a> then I would be buying a new one every 6 months. The G1 is built by HTC who have a reputation for building solid, reliable products. </p>
<p>In terms of data reliability, it&#8217;s not controversial to say that Google&#8217;s engineering team are second to none. By contrast, MobileMe had an <a href="http://gizmodo.com/5033432/apples-mobileme-launch-problems-might-be-just-the-beginning">inauspicious start</a> and has been up and down regularly since. Cloud based data management is just not Apple&#8217;s strength.</p>
<p>So for me it ultimately came down to who do I trust my personal data with: Apple or Google? I decided to embrace our new Google overlords and have since shunted all my data to their servers. If and when Google turns evil please don&#8217;t say I told you so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=390</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>YouTube Overload</title>
		<link>http://www.airtightinteractive.com/news/?p=379</link>
		<comments>http://www.airtightinteractive.com/news/?p=379#comments</comments>
		<pubDate>Thu, 15 Oct 2009 08:57:05 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=379</guid>
		<description><![CDATA[
What&#8217;s better than a YouTube video? Sixteen YouTube videos &#8211; in 3D!  
This is a for-fun, proof-of-concept demo loading in multiple instances of the new YouTube chromeless player and displaying them with Flash 10&#8217;s native 3D . Warning &#8211; this demo will probably run at a crawl and may crash your browser.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.airtightinteractive.com/demos/youtube/"><img src="http://www.airtightinteractive.com/news/imgs/yt.jpg" alt="youtube demo" /></a></p>
<p>What&#8217;s better than a YouTube video? <a href="http://www.airtightinteractive.com/demos/youtube/">Sixteen YouTube videos &#8211; in 3D!</a> <img src='http://www.airtightinteractive.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This is a for-fun, proof-of-concept demo loading in multiple instances of the new <a href="http://apiblog.youtube.com/2009/10/actionscript-3-youtube-chromeless.html">YouTube chromeless player</a> and displaying them with Flash 10&#8217;s native 3D . Warning &#8211; this demo will probably run at a crawl and may crash your browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=379</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Flash Developer Toolbox Essentials</title>
		<link>http://www.airtightinteractive.com/news/?p=359</link>
		<comments>http://www.airtightinteractive.com/news/?p=359#comments</comments>
		<pubDate>Fri, 25 Sep 2009 02:27:11 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Useful]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=359</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.airtightinteractive.com/news/imgs/toolbox.jpg" alt="Toolbox" height="300" width="550"/><br />
<font style="font-size:x-small"">Image by <a href="http://www.flickr.com/photos/booleansplit/2376359338/">Robert S. Donovan</a>. </font></p>
<p>When working with other Flash developers, I am sometimes surprised when they are not aware of some dev tools that I consider essential. I thought it would be useful to list out the tools that I use everyday as a Flash Developer. All of these tools are free and cross-platform unless otherwise stated. None of this will be news to the seasoned Flash devs, but some will find it useful. Let me know in the comments if I&#8217;ve missed anything.</p>
<h3>Applications</h3>
<p>Desktop apps and browser plugins.</p>
<ul>
<li><a href="http://getfirebug.com/">Firebug</a>. This firefox plugin lets you view a HTML page&#8217;s elements load in realtime, among other things. Great for debugging dynamic data loading into a SWF. Essential for any web developer.</li>
<li><a href="http://www.sephiroth.it/firefox/flashtracer/">Flash Tracer</a>. Firefox plugin to view your SWF traces in the browser. Invaluable.</li>
<li><a href="http://www.mamp.info/en/index.html">MAMP</a> (Mac) and <a href="http://www.wampserver.com/en/">WAMP</a> (PC). MAMP is a one-click install personal webserver for the Mac. WAMP is the same for Windows. Useful for debugging load timing issues on your own box, especially when combined with a web-proxy throttler.</li>
<li><a href="http://www.charlesproxy.com/">Charles</a> and <a href="http://kevinlangdon.com/serviceCapture/">ServiceCapture</a>. These web-proxies allow you to view your SWF&#8217;s dynamic data loads in realtime. They also offer throttling, which lets you simulate slow web connection speeds (both are not free).</li>
<li><a href="http://www.my-debugbar.com/wiki/IETester/HomePage">IETester</a> (PC). Allows you to run IE8, IE7 IE 6 and IE5.5 on Windows 7, Vista and XP. Good for debugging IE6 weirdness.</li>
<li><a href="http://www.adobe.com/products/flex/">Flash Builder</a>. Everyone has their own favorite ActionScript editor, and this is mine. If you are still coding in the Flash Actions panel, now is the time to stop &#8211; you won&#8217;t regret it! Flash Builder is an Adobe product so you know it&#8217;s going to be well maintained. As a bonus it uses the industry standard <a href="http://www.eclipse.org/">Eclipse</a> UI, so the shortcuts you learn with it can be transferred over if you choose to develop in some other programming language later (not free).</li>
<li><a href="http://versionsapp.com/">Versions</a> (Mac) and <a href="http://tortoisesvn.tigris.org/">Tortoise SVN</a> (PC). Source control is not necessary for smaller projects, but if you value your dev time and want to be able to keep multiple versions of your code available, it is a must. Versions (not free) is the nicest SVN client ever, and Tortoise is the most popular Windows SVN client.</li>
<li><a href="http://www.pascal.com/software/freeruler/">Free Ruler</a>(Mac) and <a href="http://www.spadixbd.com/freetools/jruler.htm">JR Screen Ruler</a> (PC). These little apps allow you to measure pixels on the screen without having to do a screen grab.</li>
<li><a href="http://www.cocoatech.com/">Pathfinder</a> (Mac).  A Finder replacement that is hard to live without once you are used to it. Includes tabs and a split pane for dragging and dropping. Not really a Flash dev specific tool, but I&#8217;ve seen enough people be amazed at seeing tabs in the Finder that it was worth including here (not free).</li>
</ul>
<h3>Flash Libraries</h3>
<p>Why re-build the wheel? There are tons of great, free ActionScript libraries made available by generous and talented developers.</p>
<ul>
<li><a href="http://blog.greensock.com/tweenliteas3/">TweenLite</a>. The fastest, most robust and easiest to use Tween library out there.</li>
<li><a href="http://away3d.com/">Away3D</a>. The best 3D library out there. Although <a href="http://www.papervision3d.org/">Papervision</a> seems to win all the awards, from my experience Away3D has the most features and has the best <a href="http://away3d.com/livedocs/">documentation</a>. Also has a great <a href="http://groups.google.com/group/away3d-dev">user forum</a>.</li>
<li><a href="http://casalib.org/">casalib</a>. A great collection of robust utility classes. Check here before writing that utility class!</li>
<li><a href="http://www.asual.com/swfaddress/">SWFAddress</a>. Has quickly become an industry standard for building flash sites that support deep-linking. Handles lots of gnarly browser specific issues so you don&#8217;t have to. Built on <a href="http://code.google.com/p/swfobject/">SWFObject</a> which is so useful I didn&#8217;t even list it here <img src='http://www.airtightinteractive.com/news/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><a href="http://code.google.com/p/mrdoob/wiki/stats">Hi-ReS! Stats</a>. A very handy little class to show when your SWF framerate is choking.</li>
<li><a href="http://www.bit-101.com/minimalcomps/">BIT-101 MinimalComps</a>. A set of ActionScript-only UI components for use in non-Flex projects. Very easy to use and small in filesize. The code is also worth looking at to see how to build a super simple component framework.</li>
<li><a href="http://code.google.com/p/as3corelib/">as3corelib</a>. A collection of utility classes by Adobe for handling encoding and serialization among other things.</li>
</ul>
<h3>Bookmarks</h3>
<p>To round out this list, here are 3 webpages that I am always hitting:</p>
<ul>
<li><a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/">ActionScript 3.0 Language Reference</a>. Why memorize stuff when you can look it up? Flash Player 10 version is  <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/">here</a>.</li>
<li><a href="http://kb2.adobe.com/cps/155/tn_15507.html">Flash Player Version Test</a>. When your client wants to know why your awesome site looks like a grey box on their crappy PC, send them here first.</li>
<li><a href="https://browserlab.adobe.com">BrowserLab</a>. A great free resource from Adobe to test your site on multiple browsers/OSs.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=359</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>A Genuinely Helpful Warning</title>
		<link>http://www.airtightinteractive.com/news/?p=354</link>
		<comments>http://www.airtightinteractive.com/news/?p=354#comments</comments>
		<pubDate>Mon, 10 Aug 2009 19:29:51 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=354</guid>
		<description><![CDATA[I recently noticed this warning when compiling using Flash Builder 4:
"Assignment within conditional.  Did you mean == instead of =?"
How great is that? I used to work with a guy (who will go unnamed) who would threaten to sneak onto your machine and remove equal signs from equality tests in your code at random, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently noticed this warning when compiling using Flash Builder 4:</p>
<p><code>"Assignment within conditional.  Did you mean == instead of =?"</code></p>
<p>How great is that? I used to work with a guy (who will go unnamed) who would threaten to sneak onto your machine and remove equal signs from equality tests in your code at random, because &#8220;the compiler would never tell you about it&#8221;. Thankfully, his evil plan has now been foiled <img src='http://www.airtightinteractive.com/news/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Maybe the compiler should also warn about equality tests that are not in conditionals and not on the right hand of an assignment. Would that be useful or annoying?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=354</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Better Flash Asset Loading using SWCs</title>
		<link>http://www.airtightinteractive.com/news/?p=327</link>
		<comments>http://www.airtightinteractive.com/news/?p=327#comments</comments>
		<pubDate>Mon, 08 Jun 2009 19:41:54 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Useful]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=327</guid>
		<description><![CDATA[One problem with Flash development recently is the disconnect between assets created in the Flash IDE and code written in the code editor (Flex Builder, Flash Develop, FDT etc). The code editor has no knowledge of the FLA, so there is no way to list the FLA's exported symbol linkage ids or the names of [...]]]></description>
			<content:encoded><![CDATA[<p>One problem with Flash development recently is the disconnect between assets created in the Flash IDE and code written in the code editor (Flex Builder, Flash Develop, FDT etc). The code editor has no knowledge of the FLA, so there is no way to list the FLA's exported symbol linkage ids or the names of movieclips within a symbol instance (sub-clips). This can lead to lots of back and forth between Flash and the code editor, tracking down missing or misnamed symbols and sub-clips. </p>
<p>For AS projects, Flash assets are typically loaded by using 'Embed' metatags, using 'getDefinitionByName' or using something like Grant Skinner's <a href="http://www.gskinner.com/blog/archives/2007/03/using_flash_sym.html">FlashLib</a>. I recently found out about an alternative method via a comment on <a href="http://blog.iainlobb.com/2009/05/could-flash-autogenerate-classes-from.html">Ian Lobb's blog</a>, which is to use SWCs. </p>
<p>It turns out that using SWCs solves the above issues for very little extra setup. Using SWCs means the compiler knows about the FLA and gives code completion on symbol names and sub-clips. Anytime the compiler knows about stuff, it's going to save you debugging time by flagging errors before they happen. Symbols also retain their timeline ActionScript (unlike using Embed tags).</p>
<p>Example usage:</p>
<div class="igBar"><span id="lactionscript-2"><a href="#" onclick="javascript:showPlainTxt('actionscript-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-2">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//import symbol from FLA</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">import</span> assets.<span style="color: #006600;">MySymbol1</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//Instantiate symbol instance&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> clip:MySymbol1 = <span style="color: #000000; font-weight: bold;">new</span> MySymbol1<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//access symbol's sub-clip properties</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">clip.<span style="color: #006600;">mcGreen</span>.<span style="color: #006600;">alpha</span> = <span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">5</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Example Flex Builder code completion:</p>
<p><img src="http://www.airtightinteractive.com/news/imgs/symbols.gif" alt="SWC Symbols" /></p>
<p><img src="http://www.airtightinteractive.com/news/imgs/subclips.gif" alt="SWC subclips" /></p>
<p>Where this technique gets really interesting is with Flash Builder 4's Package Explorer. This allows you to browse inside a SWC and view all exported symbols and sub-clips.</p>
<p><img src="http://www.airtightinteractive.com/news/imgs/packageexplorer.gif" alt="package explorer" /></p>
<p>This technique can be used with any smart AS editor. The set-by-step for Flash Develop is <a href="http://www.flashdevelop.org/wikidocs/index.php?title=AS3:FlexAndFlashCS3Workflow">here</a>.  For Flex Builder you want to do something like this:</p>
<ol>
<li>In Flex Builder, create a new AS project.</li>
<li>In the project folder create a new FLA: 'assets/assets.fla'.</li>
<li>In the Flash publish settings, check 'Export SWC'.</li>
<li>Create a symbol in the FLA. Set the Linkage id to: 'assets.MySymbol'.</li>
<li>Publish the SWC.</li>
<li>In Flex Builder do Project -> Properties-> ActionScript Build Path -> Library Path -> Add SWC. Enter the path to the SWC ('assets/assets.swc')	.</li>
<li>In Flex Builder, edit the main class. Type 'import assets.'. The symbol name you defined in the FLA will now show as a code completion option.</li>
</ol>
<p>Anyone know of any disadvantages of using this method?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=327</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Error Message of Doom: &#8220;Page XXX of your document has been damaged. You should delete it.&#8221;</title>
		<link>http://www.airtightinteractive.com/news/?p=320</link>
		<comments>http://www.airtightinteractive.com/news/?p=320#comments</comments>
		<pubDate>Tue, 02 Jun 2009 15:51:34 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=320</guid>
		<description><![CDATA[This error caused us some stress at the last minute before a site launch. When doing 'Save and Compact' or 'Save As...' on an FLA, Flash IDE gives a bunch of the following errors: "Page XXX of your document has been damaged. You should delete it."
The solution turned out to be simple. Copy all the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.airtightinteractive.com/news/imgs/damaged.jpg" alt="Damaged Symbol" />This error caused us some stress at the last minute before a site launch. When doing 'Save and Compact' or 'Save As...' on an FLA, Flash IDE gives a bunch of the following errors: "Page XXX of your document has been damaged. You should delete it."</p>
<p>The solution turned out to be simple. Copy all the library symbols from the damaged FLA into a new document. Error goes away. As far as we could tell, this was caused by sharing files between Flash version 10 and 10.0.2. Moral of the story - <a href="http://www.adobe.com/support/flash/downloads.html">get the Flash update now</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=320</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Another Reason to Love TweenLite</title>
		<link>http://www.airtightinteractive.com/news/?p=309</link>
		<comments>http://www.airtightinteractive.com/news/?p=309#comments</comments>
		<pubDate>Sat, 30 May 2009 17:12:22 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Useful]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=309</guid>
		<description><![CDATA[I just found a useful function in the TweenLite library, which is great for easily sequencing multiple function calls. To call myFunction() in half a second with param1 and param2, do this:
PLAIN TEXT
Actionscript:




TweenLite.delayedCall&#40;0.5, myFunction, &#91;param1,param2&#93;&#41;; 






which is a lot less code than:
PLAIN TEXT
Actionscript:




var tmr:Timer = new Timer&#40;500, 1&#41;;


tmr.addEventListener&#40;TimerEvent.TIMER_COMPLETE,onTimerEvent&#41;;


tmr.start&#40;&#41;; 


private function onTimerEvent&#40;event:Event&#41;:void&#123;


&#160; &#160; myFunction&#40;param1,param2&#41;; 


&#125; 






TweenLite [...]]]></description>
			<content:encoded><![CDATA[<p>I just found a useful function in the <a href="http://blog.greensock.com/tweenliteas3/">TweenLite</a> library, which is great for easily sequencing multiple function calls. To call myFunction() in half a second with param1 and param2, do this:</p>
<div class="igBar"><span id="lactionscript-5"><a href="#" onclick="javascript:showPlainTxt('actionscript-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-5">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">TweenLite.<span style="color: #006600;">delayedCall</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">0</span>.<span style="color: #cc66cc;color:#800000;">5</span>, myFunction, <span style="color: #66cc66;">&#91;</span>param1,param2<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
which is a lot less code than:</p>
<div class="igBar"><span id="lactionscript-6"><a href="#" onclick="javascript:showPlainTxt('actionscript-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-6">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> tmr:Timer = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">500</span>, <span style="color: #cc66cc;color:#800000;">1</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tmr.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER_COMPLETE</span>,onTimerEvent<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tmr.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onTimerEvent<span style="color: #66cc66;">&#40;</span>event:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; myFunction<span style="color: #66cc66;">&#40;</span>param1,param2<span style="color: #66cc66;">&#41;</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>TweenLite seems to have quickly become something of a Flash standard. It's a great library that is well maintained and just works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=309</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>PercentMobile &#8211; Free Mobile Analytics</title>
		<link>http://www.airtightinteractive.com/news/?p=304</link>
		<comments>http://www.airtightinteractive.com/news/?p=304#comments</comments>
		<pubDate>Sat, 11 Apr 2009 07:40:52 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Elsewhere]]></category>
		<category><![CDATA[Useful]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=304</guid>
		<description><![CDATA[My buddy Stan Wiechers just launched a supercool new service that provides Free Mobile Analytics - PercentMobile. Check it out if you want to see how many of your users are viewing your site on a mobile device and what kind of device they are using. To sign up you can use the invite code [...]]]></description>
			<content:encoded><![CDATA[<p>My buddy Stan Wiechers just launched a supercool new service that provides Free Mobile Analytics - <a href="http://www.percentmobile.com">PercentMobile</a>. Check it out if you want to see how many of your users are viewing your site on a mobile device and what kind of device they are using. To sign up you can use the invite code "airtight" (good for 100 invites).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=304</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SWFAddress Gotcha: Navigating Directly to a Deep Link Breaks Preloader</title>
		<link>http://www.airtightinteractive.com/news/?p=290</link>
		<comments>http://www.airtightinteractive.com/news/?p=290#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:28:54 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Useful]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=290</guid>
		<description><![CDATA[There is a known issue with SWFAddress 2.2: When navigating directly to a deep link, the preloader does not display or jumps straight to 100%. When using the '#' symbol in the URL, the browser loads the main SWF twice which cause the preloader to break.
The fix is to use a mini pre-preloader as supplied [...]]]></description>
			<content:encoded><![CDATA[<p>There is a <a href="http://sourceforge.net/forum/forum.php?thread_id=2985591&#038;forum_id=630934">known issue</a> with SWFAddress 2.2: When navigating directly to a deep link, the preloader does not display or jumps straight to 100%. When using the '#' symbol in the URL, the browser loads the main SWF twice which cause the preloader to break.</p>
<p>The fix is to use a mini pre-preloader as supplied in the <a href="http://sourceforge.net/projects/swfaddress/">SWFAddress samples</a> ('samples/cs3/c.fla'). The mini-loader is loaded twice but since it's so small it doesn't matter. I'm adding this information here since the issue is pretty buried in the SWFAddress forum.</p>
<p><strong>[UPDATE]</strong> OK, another SWFAddress gotcha by virtue of obscurity: If your back button is not working, check you have specified the 'id' attribute in the swfobject.embedSWF() call. The 'id' attribute can be any string.</p>
<p><code>swfobject.embedSWF('c.swf?path=main.swf', 'flashContent', '100%', '100%', '9.0.45', null, {}, {}, <strong>{id: 'myId'}</strong>);</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=290</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A New &#8216;Battle of the Planets&#8217; Movie !?!</title>
		<link>http://www.airtightinteractive.com/news/?p=272</link>
		<comments>http://www.airtightinteractive.com/news/?p=272#comments</comments>
		<pubDate>Sat, 28 Mar 2009 04:50:36 +0000</pubDate>
		<dc:creator>Felix Turner</dc:creator>
				<category><![CDATA[Elsewhere]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.airtightinteractive.com/news/?p=272</guid>
		<description><![CDATA[
I just found out that there is a new 'Battle of the Planets'/G-Force/Gatchaman movie coming out! 
I used to love BOTP as a kid in the 80s. The weirdness and the beautiful animation really made it stand out from the typical U.S. cartoon dross. It was only later that I found out the original Japanese [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://2.bp.blogspot.com/_sAYuHYdfmg4/SMTRoQo6-bI/AAAAAAAAAA4/pSAQb3GB8Fo/s1600-h/gatchaman_poster.jpg"><img src="http://www.airtightinteractive.com/news/wp-content/uploads/2009/03/gatchaman.jpg" alt="gatchaman" title="gatchaman" width="550" height="300" class="alignnone size-full wp-image-273" /></a></p>
<p>I just found out that there is a new 'Battle of the Planets'/G-Force/Gatchaman movie <a href="http://twitchfilm.net/site/view/cg-fied-joe-asakura-revealed-in-gatchaman-poster/">coming out</a>! </p>
<p>I used to love BOTP as a kid in the 80s. The weirdness and the beautiful animation really made it stand out from the typical U.S. cartoon dross. It was only later that I found out the original Japanese version (<a href="http://en.wikipedia.org/wiki/Science_Ninja_Team_Gatchaman">Gatchaman</a>) was a lot stranger and more violent.  </p>
<p>It’s interesting that even though the show was butchered for the western market, the original spirit shone through. I wonder if as western kids we would have been able to handle the original version, or if we needed the sugar coating of more linear plot-lines, Casey Kasem and 7-Zark-7.</p>
<p><object width="550" height="400"><param name="movie" value="http://www.youtube.com/v/Xx0vhpG3lLc&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Xx0vhpG3lLc&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="400"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.airtightinteractive.com/news/?feed=rss2&amp;p=272</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
