<?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>The World In A State of Flex &#187; General</title>
	<atom:link href="http://unitedmindset.com/jonbcampos/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://unitedmindset.com/jonbcampos</link>
	<description>Jonathan Campos&#039;s Blog about Flex and the Flash Platform</description>
	<lastBuildDate>Thu, 29 Jul 2010 15:46:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How to Overlay the Adobe AIR SDK for Use with the Flex SDK</title>
		<link>http://unitedmindset.com/jonbcampos/2010/07/21/how-to-overlay-the-adobe-air-sdk-for-use-with-the-flex-sdk/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-overlay-the-adobe-air-sdk-for-use-with-the-flex-sdk</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/07/21/how-to-overlay-the-adobe-air-sdk-for-use-with-the-flex-sdk/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 21:20:22 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1812</guid>
		<description><![CDATA[This information is in the AIR_Android_ReleaseNotes_xxxx.pdf. What I am posting here is just meant to shift to the surface some very valuable information. I know that there are many people out there that manually merge the AIR SDK onto the Flex SDK &#8211; myself included. I knew there had to be a better way to [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
This information is in the <strong>AIR_Android_ReleaseNotes_xxxx.pdf</strong>. What I am posting here is just meant to shift to the surface some very valuable information.
</p></blockquote>
<p>I know that there are many people out there that manually merge the AIR SDK onto the Flex SDK &#8211; myself included. I knew there had to be a better way to do it but &#8220;if it ain&#8217;t broke, don&#8217;t fix it&#8221; right?</p>
<p>Well I&#8217;m tired of spending those tedious minutes going through folders and copying over files. Yes, if you are in windows this is just a drag and drop operation but not for a mac. We need to get into terminal to do this.<br />
<span id="more-1812"></span><br />
1. In terminal, &#8220;cd&#8221; to the root folder of the Flex SDK</p>
<p>2. Place the AIR25_mac_sdk_XXXXXXX.tbz2 file in your root folder</p>
<p>3. Run the following command:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tar jxvf AIR25_mac_sdk_XXXXXX.tbz2</div></td></tr></tbody></table></div>
<p>If there is a file permissions problem you may need to add a &#8220;sudo chop&#8221; to the front of that command, as such:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo tar jxvf AIR25_mac_sdk_XXXXXX.tbz2</div></td></tr></tbody></table></div>
<p>FYI. The &#8220;sudo chop&#8221; was supposed to be a joke.</p>
<p>HTH</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/07/21/how-to-overlay-the-adobe-air-sdk-for-use-with-the-flex-sdk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Speaking at 360&#124;Flex DC</title>
		<link>http://unitedmindset.com/jonbcampos/2010/07/20/speaking-at-360flex-dc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=speaking-at-360flex-dc</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/07/20/speaking-at-360flex-dc/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 14:23:14 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[360Flex]]></category>
		<category><![CDATA[DC]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1758</guid>
		<description><![CDATA[This is just a quick shout out to 360&#124;Flex! This September I&#8217;m proud to present again for 360&#124;Flex and the conference goers in DC. I&#8217;ll be covering a hands on and best practices to developing with the Android Device using Adobe AIR. I&#8217;m hoping many of you come out and check out this hands on. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eventbrite.com/event/680816340/360flexhelpsell/3634556037"><img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/07/speakerbadge.png" alt="" title="speakerbadge" width="200" height="211" class="alignleft size-full wp-image-1759" /></a><br />
This is just a quick shout out to 360|Flex!</p>
<p>This September I&#8217;m proud to present again for 360|Flex and the conference goers in DC. I&#8217;ll be covering a hands on and best practices to developing with the Android Device using Adobe AIR.</p>
<p>I&#8217;m hoping many of you come out and check out this hands on. I&#8217;ll be going over environmental setup, development, best practices with development, and tips and tricks to debugging and final releases. After you leave this hands on you should be popping out Android applications just as fast as you can dream them up.</p>
<p><a href="http://www.eventbrite.com/event/680816340/360flexhelpsell/3634556037">Go checkout and register for 360|Flex DC now!</a> There are tons of A-List presenters and fun activities to be had.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/07/20/speaking-at-360flex-dc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building an AIR Application with ANT</title>
		<link>http://unitedmindset.com/jonbcampos/2010/06/22/building-an-air-application-with-ant/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=building-an-air-application-with-ant</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/06/22/building-an-air-application-with-ant/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 14:00:04 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[ci]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1429</guid>
		<description><![CDATA[Building on my previous Continuous Integration series I felt there were a few more points that I needed to cover to help those others that may be running into some roadblocks with their Continuous Integration scripts. Let&#8217;s get into have to build and package an AIR application using ANT. Unlike building a web application you [...]]]></description>
			<content:encoded><![CDATA[<p>Building on my previous <a href="http://unitedmindset.com/jonbcampos/2010/02/09/the-master-flex-ant-file/">Continuous Integration series</a> I felt there were a few more points that I needed to cover to help those others that may be running into some roadblocks with their Continuous Integration scripts.</p>
<p>Let&#8217;s get into have to build and package an AIR application using ANT. Unlike building a web application you need more than just a SWF file to deploy your application. You will need to actually build the SWF file and then package that SWF file into an ANT file.</p>
<p>The Three (not so easy) Steps:<br />
1. Build a SWF File<br />
2. Make a Certificate<br />
3. Package your SWF with your Certificate<br />
<span id="more-1429"></span><br />
<strong>Starting Out</strong><br />
I&#8217;ve created a simple AIR Project called &#8220;AIRCI&#8221;.<br />
<img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/06/Screen-shot-2010-06-10-at-10.15.38-AM.png" alt="AIRCI Project Package Explorer" title="AIRCI Project Package Explorer" width="195" height="182" class="alignnone size-full wp-image-1566" /></p>
<p>Right now the AIRCI.mxml file is super super simple.</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;</span>s:WindowedApplication xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Place non-visual elements <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">g</span>., services, value objects<span style="color: #66cc66;">&#41;</span> here --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:layout<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:VerticalLayout gap=<span style="color: #ff0000;">&quot;20&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paddingBottom=<span style="color: #ff0000;">&quot;20&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paddingLeft=<span style="color: #ff0000;">&quot;20&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paddingRight=<span style="color: #ff0000;">&quot;20&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paddingTop=<span style="color: #ff0000;">&quot;20&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:layout<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Rect <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;100%&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:SolidColor <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;0xFF0000&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Rect<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Rect <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;100%&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:SolidColor <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;0x00FF00&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Rect<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Rect <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;100%&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:SolidColor <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;0x0000FF&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Rect<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;/</span>s:WindowedApplication<span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>And the app descriptor file that Flash Builder generated.</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span> standalone=<span style="color: #ff0000;">&quot;no&quot;</span>?<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;</span>application xmlns=<span style="color: #ff0000;">&quot;http://ns.adobe.com/air/application/1.5.3&quot;</span><span style="color: #66cc66;">&gt;</span><br />
<br />
<span style="color: #66cc66;">&lt;!</span>-- Adobe AIR Application Descriptor File Template.<br />
<br />
&nbsp; &nbsp; <span style="color: #006600;">Specifies</span> parameters <span style="color: #b1b100;">for</span> identifying, installing, <span style="color: #0066CC;">and</span> launching AIR applications.<br />
<br />
&nbsp; &nbsp; <span style="color: #006600;">xmlns</span> - The Adobe AIR namespace: http:<span style="color: #808080; font-style: italic;">//ns.adobe.com/air/application/1.5.3</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; The last segment of the namespace specifies the <span style="color: #0066CC;">version</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; of the AIR runtime required <span style="color: #b1b100;">for</span> <span style="color: #0066CC;">this</span> application to run.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #006600;">minimumPatchLevel</span> - The minimum patch <span style="color: #0066CC;">level</span> of the AIR runtime required to run <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the application. <span style="color: #006600;">Optional</span>.<br />
--<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The application identifier <span style="color: #0066CC;">string</span>, unique to <span style="color: #0066CC;">this</span> application. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>id<span style="color: #66cc66;">&gt;</span>AIRCI<span style="color: #66cc66;">&lt;/</span>id<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Used as the filename <span style="color: #b1b100;">for</span> the application. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>filename<span style="color: #66cc66;">&gt;</span>AIRCI<span style="color: #66cc66;">&lt;/</span>filename<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The <span style="color: #0066CC;">name</span> that is displayed <span style="color: #b1b100;">in</span> the AIR application installer. <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #006600;">May</span> have multiple values <span style="color: #b1b100;">for</span> <span style="color: #b1b100;">each</span> <span style="color: #0066CC;">language</span>. <span style="color: #006600;">See</span> samples or xsd schema file. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>name<span style="color: #66cc66;">&gt;</span>AIRCI<span style="color: #66cc66;">&lt;/</span>name<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- An application <span style="color: #0066CC;">version</span> designator <span style="color: #66cc66;">&#40;</span>such as <span style="color: #ff0000;">&quot;v1&quot;</span>, <span style="color: #ff0000;">&quot;2.5&quot;</span>, or <span style="color: #ff0000;">&quot;Alpha 1&quot;</span><span style="color: #66cc66;">&#41;</span>. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>version<span style="color: #66cc66;">&gt;</span>v1<span style="color: #66cc66;">&lt;/</span>version<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Description, displayed <span style="color: #b1b100;">in</span> the AIR application installer.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #006600;">May</span> have multiple values <span style="color: #b1b100;">for</span> <span style="color: #b1b100;">each</span> <span style="color: #0066CC;">language</span>. <span style="color: #006600;">See</span> samples or xsd schema file. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>description<span style="color: #66cc66;">&gt;&lt;/</span>description<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Copyright information. <span style="color: #006600;">Optional</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>copyright<span style="color: #66cc66;">&gt;&lt;/</span>copyright<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Publisher ID. <span style="color: #006600;">Used</span> <span style="color: #b1b100;">if</span> you<span style="color: #ff0000;">'re updating an application created prior to 1.5.3 --&gt;<br />
&nbsp; &nbsp; &lt;!-- &lt;publisherID&gt;&lt;/publisherID&gt; --&gt;<br />
<br />
&nbsp; &nbsp; &lt;!-- Settings for the application'</span>s initial window. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>initialWindow<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The main SWF or <span style="color: #0066CC;">HTML</span> file of the application. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Note: <span style="color: #b1b100;">In</span> Flash Builder, the SWF reference is <span style="color: #0066CC;">set</span> automatically. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>content<span style="color: #66cc66;">&gt;</span><span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">This</span> value will be overwritten by Flash Builder <span style="color: #b1b100;">in</span> the output app.<span style="color: #0066CC;">xml</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&lt;/</span>content<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The title of the main window. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>title<span style="color: #66cc66;">&gt;&lt;/</span>title<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The <span style="color: #0066CC;">type</span> of <span style="color: #0066CC;">system</span> chrome to use <span style="color: #66cc66;">&#40;</span>either <span style="color: #ff0000;">&quot;standard&quot;</span> or <span style="color: #ff0000;">&quot;none&quot;</span><span style="color: #66cc66;">&#41;</span>. <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> standard. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>systemChrome<span style="color: #66cc66;">&gt;&lt;/</span>systemChrome<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the window is transparent. <span style="color: #006600;">Only</span> applicable when systemChrome is none. <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">false</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>transparent<span style="color: #66cc66;">&gt;&lt;/</span>transparent<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the window is initially <span style="color: #0066CC;">visible</span>. <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">false</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>visible<span style="color: #66cc66;">&gt;&lt;/</span>visible<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the user can minimize the window. <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">true</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>minimizable<span style="color: #66cc66;">&gt;&lt;/</span>minimizable<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the user can maximize the window. <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">true</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>maximizable<span style="color: #66cc66;">&gt;&lt;/</span>maximizable<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the user can resize the window. <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">true</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>resizable<span style="color: #66cc66;">&gt;&lt;/</span>resizable<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The window<span style="color: #ff0000;">'s initial width. Optional. --&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- &lt;width&gt;&lt;/width&gt; --&gt;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- The window'</span>s initial <span style="color: #0066CC;">height</span>. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>height<span style="color: #66cc66;">&gt;&lt;/</span>height<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The window<span style="color: #ff0000;">'s initial x position. Optional. --&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- &lt;x&gt;&lt;/x&gt; --&gt;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- The window'</span>s initial y <span style="color: #0066CC;">position</span>. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>y<span style="color: #66cc66;">&gt;&lt;/</span>y<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The window<span style="color: #ff0000;">'s minimum size, specified as a width/height pair, such as &quot;400 200&quot;. Optional. --&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- &lt;minSize&gt;&lt;/minSize&gt; --&gt;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- The window'</span>s initial maximum <span style="color: #0066CC;">size</span>, specified as a <span style="color: #0066CC;">width</span><span style="color: #66cc66;">/</span><span style="color: #0066CC;">height</span> pair, such as <span style="color: #ff0000;">&quot;1600 1200&quot;</span>. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>maxSize<span style="color: #66cc66;">&gt;&lt;/</span>maxSize<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>initialWindow<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The subpath of the standard <span style="color: #000000; font-weight: bold;">default</span> installation location to use. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>installFolder<span style="color: #66cc66;">&gt;&lt;/</span>installFolder<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The subpath of the Programs <span style="color: #0066CC;">menu</span> to use. <span style="color: #66cc66;">&#40;</span>Ignored <span style="color: #0066CC;">on</span> operating systems without a Programs <span style="color: #0066CC;">menu</span>.<span style="color: #66cc66;">&#41;</span> Optional. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>programMenuFolder<span style="color: #66cc66;">&gt;&lt;/</span>programMenuFolder<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The icon the <span style="color: #0066CC;">system</span> uses <span style="color: #b1b100;">for</span> the application. <span style="color: #b1b100;">For</span> at least one resolution,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;specify the path to a PNG file included <span style="color: #b1b100;">in</span> the AIR package. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>icon<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image16x16<span style="color: #66cc66;">&gt;&lt;/</span>image16x16<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image32x32<span style="color: #66cc66;">&gt;&lt;/</span>image32x32<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image48x48<span style="color: #66cc66;">&gt;&lt;/</span>image48x48<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image128x128<span style="color: #66cc66;">&gt;&lt;/</span>image128x128<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>icon<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the application handles the update when a user double-clicks an update <span style="color: #0066CC;">version</span><br />
&nbsp; &nbsp; of the AIR file <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>, or the <span style="color: #000000; font-weight: bold;">default</span> AIR application installer handles the update <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>.<br />
&nbsp; &nbsp; <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">false</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>customUpdateUI<span style="color: #66cc66;">&gt;&lt;/</span>customUpdateUI<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Whether the application can be launched when the user clicks a link <span style="color: #b1b100;">in</span> a web browser.<br />
&nbsp; &nbsp; <span style="color: #006600;">Optional</span>. <span style="color: #000000; font-weight: bold;">Default</span> <span style="color: #000000; font-weight: bold;">false</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>allowBrowserInvocation<span style="color: #66cc66;">&gt;&lt;/</span>allowBrowserInvocation<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Listing of file types <span style="color: #b1b100;">for</span> which the application can register. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>fileTypes<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Defines one file <span style="color: #0066CC;">type</span>. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>fileType<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The <span style="color: #0066CC;">name</span> that the <span style="color: #0066CC;">system</span> displays <span style="color: #b1b100;">for</span> the registered file <span style="color: #0066CC;">type</span>. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>name<span style="color: #66cc66;">&gt;&lt;/</span>name<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The extension to register. <span style="color: #006600;">Required</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>extension<span style="color: #66cc66;">&gt;&lt;/</span>extension<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The description of the file <span style="color: #0066CC;">type</span>. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>description<span style="color: #66cc66;">&gt;&lt;/</span>description<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The MIME content <span style="color: #0066CC;">type</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>contentType<span style="color: #66cc66;">&gt;&lt;/</span>contentType<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- The icon to display <span style="color: #b1b100;">for</span> the file <span style="color: #0066CC;">type</span>. <span style="color: #006600;">Optional</span>. --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;</span>icon<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image16x16<span style="color: #66cc66;">&gt;&lt;/</span>image16x16<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image32x32<span style="color: #66cc66;">&gt;&lt;/</span>image32x32<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image48x48<span style="color: #66cc66;">&gt;&lt;/</span>image48x48<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>image128x128<span style="color: #66cc66;">&gt;&lt;/</span>image128x128<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>icon<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;/</span>fileType<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #66cc66;">&lt;/</span>fileTypes<span style="color: #66cc66;">&gt;</span> --<span style="color: #66cc66;">&gt;</span><br />
<br />
<span style="color: #66cc66;">&lt;/</span>application<span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>The <em>build.xml</em> file looks like&#8230;</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Build File&quot;</span> <span style="color: #000066;">basedir</span>=<span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;build&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!--location of property file --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${basedir}/build.properties&quot;</span> <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;your specific properities for builds&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- additional tasks --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;mxmlc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.MxmlcTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;compc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.CompcTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asdoc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.AsDocTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
<br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>And the <em>build.properties</em> file&#8230;</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#Flex Locations<br />
FLEX_HOME=/Applications/Adobe\ Flash\ Builder\ 4/sdks/4.0.0<br />
FLEX_TASKS=${FLEX_HOME}/ant/lib/flexTasks.jar</div></td></tr></tbody></table></div>
<p><strong>Build the SWF File</strong><br />
When building an AIR application we start by building the SWF file and then storing that build file to package with the certificate.</p>
<p>What I&#8217;ve done here is use the FlexTasks MXMLC task to build the SWF file. I&#8217;ve specified that this is an AIR build so that we use the <em>air-config.xml</em> provided by Adobe. This provides lots of settings for us such as manifest files and other settings. Then I specify the source folder, library folder, what file is the main application file, and finally where the built swf file will be output to.</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;compile&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Compiles the AIR application to a SWF file and places SWF in a temp directory to be packaged.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mxmlc</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${SOURCE_DIR}/${APP_NAME}.${APP_EXTENSION}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">output</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}/${APP_NAME}.swf&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">locale</span>=<span style="color: #ff0000;">&quot;${LOCALE}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">static-rsls</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">accessible</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">configname</span>=<span style="color: #ff0000;">&quot;air&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">debug</span>=<span style="color: #ff0000;">&quot;${DEBUG_FLAG}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">maxmemory</span>=<span style="color: #ff0000;">&quot;512m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source-path</span> <span style="color: #000066;">path-element</span>=<span style="color: #ff0000;">&quot;${SOURCE_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;external-library-path</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/frameworks/libs/air/airglobal.swc&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;library-path</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${LIBRARY_DIR}&quot;</span> <span style="color: #000066;">includes</span>=<span style="color: #ff0000;">&quot;*.swc&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mxmlc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>And the properties&#8217;s file additions:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#App Settings<br />
APP_NAME=AIRCI<br />
APP_EXTENSION=mxml<br />
SOURCE_DIR=${basedir}/src<br />
LIBRARY_DIR=${basedir}/libs<br />
RELEASE_DIR=${basedir}/release<br />
BUILD_DIR=${basedir}/build<br />
<br />
#Etc Settings<br />
LOCALE=en_US<br />
DEBUG_FLAG=false</div></td></tr></tbody></table></div>
<p><strong>Make the Certificate</strong><br />
Next we need to build the certificate &#8211; especially if the certificate hasn&#8217;t been made yet. In the final file we&#8217;ll check if it exists and only create the certificate if it doesn&#8217;t, but for now we&#8217;ll just build the file. We&#8217;ll use the ADT executable to achieve the certificate creation.</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;certificate&quot;</span> <span style="color: #000066;">unless</span>=<span style="color: #ff0000;">&quot;CERTIFICATE_FLAG&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;java</span> <span style="color: #000066;">jar</span>=<span style="color: #ff0000;">&quot;${ADT}&quot;</span> <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> </span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-certificate&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-cn&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_NAME}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-ou&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_ORG_UNIT}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-o&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_ORG_NAME}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-c&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_COUNTRY}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_KEY_TYPE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${KEYSTORE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_PASSWORD}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/java<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>And the build properties added in this step:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#certificate<br />
STORETYPE=pkcs12<br />
KEYSTORE=cert.p12<br />
CERT_NAME=UnitedMindsetSelfSignedCertificate<br />
CERT_ORG_UNIT=Software Development<br />
CERT_ORG_NAME=UnitedMindset<br />
CERT_COUNTRY=US<br />
CERT_KEY_TYPE=2048-RSA<br />
CERT_PASSWORD=unitedmindsetNotARealPassword</div></td></tr></tbody></table></div>
<p><strong>Package and Release the AIR Application</strong><br />
Finally we&#8217;ll create the releasable application using the ADT executable with the application descriptor file, the swf file that was previously created, and the certificate.</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;package&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;compile, certificate&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Packages the build SWF file from a temp directory.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;java</span> <span style="color: #000066;">jar</span>=<span style="color: #ff0000;">&quot;${ADT}&quot;</span> <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> </span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">maxmemory</span>=<span style="color: #ff0000;">&quot;512m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-package&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storetype&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${STORETYPE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-keystore&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${KEYSTORE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storepass&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_PASSWORD}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${RELEASE_DIR}/${APP_NAME}.air&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${SOURCE_DIR}/${APP_NAME}-app.xml&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-C&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}/${APP_NAME}.swf&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/java<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>No additions were added to the build.properties file.</p>
<p><strong>Final build.xml File</strong></p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Build File&quot;</span> <span style="color: #000066;">basedir</span>=<span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;build&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!--location of property file --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${basedir}/build.properties&quot;</span> <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;your specific properities for builds&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- additional tasks --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;mxmlc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.MxmlcTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;compc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.CompcTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;asdoc&quot;</span> <span style="color: #000066;">classname</span>=<span style="color: #ff0000;">&quot;flex.ant.AsDocTask&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${FLEX_TASKS}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!--</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; &nbsp; &nbsp; &nbsp;Build</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; &nbsp;</span><br />
<span style="color: #808080; font-style: italic;"> &nbsp; &nbsp;--&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;build&quot;</span> <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;compiles application&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;antcall</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;init&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;antcall</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;package&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;antcall</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;cleanup&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;compile&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Compiles the AIR application to a SWF file and places SWF in a temp directory to be packaged.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mxmlc</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${SOURCE_DIR}/${APP_NAME}.${APP_EXTENSION}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">output</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}/${APP_NAME}.swf&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">locale</span>=<span style="color: #ff0000;">&quot;${LOCALE}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">static-rsls</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">accessible</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">configname</span>=<span style="color: #ff0000;">&quot;air&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">debug</span>=<span style="color: #ff0000;">&quot;${DEBUG_FLAG}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">maxmemory</span>=<span style="color: #ff0000;">&quot;512m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source-path</span> <span style="color: #000066;">path-element</span>=<span style="color: #ff0000;">&quot;${SOURCE_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;external-library-path</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/frameworks/libs/air/airglobal.swc&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;library-path</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${LIBRARY_DIR}&quot;</span> <span style="color: #000066;">includes</span>=<span style="color: #ff0000;">&quot;*.swc&quot;</span> <span style="color: #000066;">append</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mxmlc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;certificate&quot;</span> <span style="color: #000066;">unless</span>=<span style="color: #ff0000;">&quot;CERTIFICATE_FLAG&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;java</span> <span style="color: #000066;">jar</span>=<span style="color: #ff0000;">&quot;${ADT}&quot;</span> <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> </span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-certificate&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-cn&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_NAME}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-ou&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_ORG_UNIT}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-o&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_ORG_NAME}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-c&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_COUNTRY}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_KEY_TYPE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${KEYSTORE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_PASSWORD}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/java<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;package&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;compile, certificate&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Packages the build SWF file from a temp directory.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;java</span> <span style="color: #000066;">jar</span>=<span style="color: #ff0000;">&quot;${ADT}&quot;</span> <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> </span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">maxmemory</span>=<span style="color: #ff0000;">&quot;512m&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-package&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storetype&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${STORETYPE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-keystore&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${KEYSTORE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storepass&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${CERT_PASSWORD}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${RELEASE_DIR}/${APP_NAME}.air&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${SOURCE_DIR}/${APP_NAME}-app.xml&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-C&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}/${APP_NAME}.swf&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/java<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;init&quot;</span> <span style="color: #000066;">depends</span>=<span style="color: #ff0000;">&quot;clean&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Cleans the deploy file&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${RELEASE_DIR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;available</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${KEYSTORE}&quot;</span> <span style="color: #000066;">property</span>=<span style="color: #ff0000;">&quot;CERTIFICATE_FLAG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;clean&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Cleans up old files.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}&quot;</span> <span style="color: #000066;">failOnError</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000066;">includeEmptyDirs</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${RELEASE_DIR}&quot;</span> <span style="color: #000066;">failOnError</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000066;">includeEmptyDirs</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;cleanup&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;Cleans up old files.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${BUILD_DIR}&quot;</span> <span style="color: #000066;">failOnError</span>=<span style="color: #ff0000;">&quot;false&quot;</span> <span style="color: #000066;">includeEmptyDirs</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p><strong>Final build.properties File</strong></p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#Flex Locations<br />
FLEX_HOME=/Applications/Adobe\ Flash\ Builder\ 4/sdks/4.0.0<br />
FLEX_TASKS=${FLEX_HOME}/ant/lib/flexTasks.jar<br />
<br />
#Compilers<br />
ADL=${FLEX_HOME}/bin/adl<br />
ADT=${FLEX_HOME}/lib/adt.jar<br />
<br />
#App Settings<br />
APP_NAME=AIRCI<br />
APP_EXTENSION=mxml<br />
SOURCE_DIR=${basedir}/src<br />
LIBRARY_DIR=${basedir}/libs<br />
RELEASE_DIR=${basedir}/release<br />
BUILD_DIR=${basedir}/build<br />
<br />
#Etc Settings<br />
LOCALE=en_US<br />
DEBUG_FLAG=false<br />
<br />
#certificate<br />
STORETYPE=pkcs12<br />
KEYSTORE=cert.p12<br />
CERT_NAME=UnitedMindsetSelfSignedCertificate<br />
CERT_ORG_UNIT=Software Development<br />
CERT_ORG_NAME=UnitedMindset<br />
CERT_COUNTRY=US<br />
CERT_KEY_TYPE=2048-RSA<br />
CERT_PASSWORD=unitedMindsetNotARealPassword</div></td></tr></tbody></table></div>
<blockquote><p>
One error you may see when trying to package your application is:<br />
<strong>[java] /Users/jonbcampos/Documents/work/dflex/AIRCI/src/AIRCI-app.xml(43): error 105: application.initialWindow.content contains an invalid value</strong></p>
<p>This is because the content in your application descriptor file isn&#8217;t set. When Flash Builder builds an AIR file it replaces the content tag in the application descriptor file.</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">&lt;!-- Note: In Flash Builder, the SWF reference is set automatically. --&gt;</span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>[This value will be overwritten by Flash Builder in the output app.xml]<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>You may want to just switch it out for the name of your swf file:</p>
<div class="codecolorer-container xml dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AIRCI.swf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
</blockquote>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/06/22/building-an-air-application-with-ant/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTC Evo</title>
		<link>http://unitedmindset.com/jonbcampos/2010/06/21/htc-evo/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=htc-evo</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/06/21/htc-evo/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 16:00:36 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Evo]]></category>
		<category><![CDATA[Evo and Air]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[New Devices]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1589</guid>
		<description><![CDATA[Last week after D-Flex I got home to find a little cardboard box by my door, inside was my brand new Evo. I did have some issues originally using the Evo &#8211; I kept trying to swipe everything. So for the first few hours of very little interaction I could barely make a phone call. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/06/HTC-EVO-GR-193x300.png" alt="" title="HTC-EVO-GR" width="193" height="300" class="alignleft size-medium wp-image-1594" /><br />
Last week after <a href="http://d-flex.groups.adobe.com/">D-Flex</a> I got home to find a little cardboard box by my door, inside was my brand new Evo.</p>
<p>I did have some issues originally using the Evo &#8211; I kept trying to swipe everything. So for the first few hours of very little interaction I could barely make a phone call. Then Friday evening I decided it was time to sit down and customize my Evo. Within a few minutes I had figured out how to get around and the phone quickly felt very friendly.</p>
<p>Now, the Good, the Bad, and the awesome!</p>
<p><span id="more-1589"></span><br />
<strong>The Good:</strong></p>
<p><em>Google search everywhere!</em><br />
All over the phone is Google Search. Search the web, search your stuff, search everything. And on top of that is the ability to speak your searches. The first night in a bind (while driving) I did a search for a bar I was trying to reach. I held the search button and immediately the phone was waiting for me to talk. I said &#8220;map to _________&#8221; and the phone switched right to Google maps with a route right to the location. </p>
<p>DONE! It was awesome.</p>
<p>Beyond that every application seems to have the ability to search. No reason to scroll through lists, instead everything starts with a search.</p>
<p><em>Speech to text</em><br />
I brought it up earlier a bit &#8211; speech to text. That was something I was always annoyed with on the iPhone. Simple text messages and long notes always required typing&#8230; why? Now with the Google services we can get speech to text immediately everywhere that text needs to be entered. Heck, most of this blog post was written with this feature. The trick is that you need to do it one sentence at a time, but other than that it works really well.</p>
<p><em>The marketplace</em><br />
Everyone talks about the AppStore like it is the end all be all location for applications. It took about 5 seconds after getting a list of cool apps from <a href="http://twitter.com/rlux/statuses/16497284742">Rachel</a> and <a href="http://twitter.com/texmags/statuses/16497303476">Magnus</a> to download all of the recommended applications. The download process was easier and faster than the AppStore, search was faster and download was faster&#8230; though I&#8217;m sure the 4g helped. <img src='http://unitedmindset.com/jonbcampos/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Widgets!</em><br />
The way that applications can have both a widget form and full application form is wonderful. With the ability to set up main home screens with quick views and controls into your favorite application you save so much time and effort. I enjoy having a &#8220;utility&#8221; screen with the quick ability to turn on and off screen brightness, wifi, 4g, bluetooth and so on. It&#8217;s my screen for keeping my battery in check.</p>
<p>But I enjoy other widgets, like having my calendar or favorite call lists right on the main screen. Or even a Mint.com summary and my music together. In the end there is no limit to what you can set up and how helpful the phone can be.</p>
<p><em>Friends feeds</em><br />
<img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/06/HTC-EVO-GH-stand-238x300.png" alt="" title="HTC-EVO-GH-stand" width="238" height="300" class="alignright size-medium wp-image-1611" /><br />
This is more of a widget than actual feature but it is still cool. When the phone first came on I went through a quick wizard and connected into my facebook and twitter accounts. Now my contacts are tied with my friends lists and I have a Friends Feed that aggregates all my facebook and twitter friends activity. When looking through my contact list I thought it was interesting to see under an entries name their last twitter or facebook post.</p>
<p><em>The Kickstand</em><br />
I know it seems stupid but the kickstand is really cool. It&#8217;s nice to watch Uruguay in the World Cup live on the phone with the phone kicked up.</p>
<p><em>Removable Battery</em><br />
As soon as I opened the box a smile came on my face when I saw the battery separate from the phone. I no longer have to watch the battery slowly die away fearing for the end of the phone&#8217;s life. Now I can switch out batteries as I please.</p>
<p><strong>The Bad:</strong></p>
<p><em>Battery life</em><br />
<img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/06/HTC-EVO-GB-154x300.png" alt="" title="HTC-EVO-GB" width="154" height="300" class="alignright size-medium wp-image-1606" /><br />
I seriously feel like I should keep a second battery with me at all times. I carry around the usb charging cord like a safety blanket. Even when I turn off 4g, WiFi, and close applications the battery seems to run down quickly. I&#8217;m putting up with it for now, but I am hoping for a system update to help with power.</p>
<blockquote><p>
The Evo comes with a program to show what program and process used what percentage of power. Last night while taking a handful of photos I found out that the camera used TONS of power.
</p></blockquote>
<p><em>Consistency is Key</em><br />
Also, there isn&#8217;t a great level of consistency even within the base applications. Some navigate through and initiate actions via long press. Some applications do it from the menu button. It&#8217;s a bit annoying when something doesn&#8217;t work right and you have to try both.</p>
<p><strong>The Awesome:</strong><br />
<img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/06/HTC-EVO-GHL-QIK-300x261.png" alt="" title="HTC-EVO-GHL-QIK" width="300" height="261" class="alignleft size-medium wp-image-1612" /><br />
<em>4G</em><br />
Absolutely beyond awesome is the 4g. It is so freaking fast that I really don&#8217;t see any reason to use the computer to search through the web. Applications and whatnot come down so freaking fast that there is no more waiting to do anything.</p>
<p><em>The Camera and Video Chat</em><br />
I was only able to play with this shortly, but it was the coolest thing. Running on 4g it was instantly available. The dual cameras really help and the quality is perfect.</p>
<p><strong>Conclusion</strong><br />
As you can tell I&#8217;m really happy with my new Evo. I&#8217;d really liked the iPhone before this, but with all the crap that Crazy Steve has been doing with the iPhone and Flash I am putting my money where my mouth is and ultimately I like having a device that I can develop for along with enjoy for the day to day.</p>
<blockquote><p>
I&#8217;m really looking forward to creating some fun apps and test cases in the near future with <a href="http://labs.adobe.com/technologies/air2/android/">AIR for Android</a> and my new Evo.
</p></blockquote>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/06/21/htc-evo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Difference Between Skin and SparkSkin</title>
		<link>http://unitedmindset.com/jonbcampos/2010/06/02/the-difference-between-skin-and-sparkskin/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-difference-between-skin-and-sparkskin</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/06/02/the-difference-between-skin-and-sparkskin/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:00:20 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spark skinning]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1533</guid>
		<description><![CDATA[When learning and looking at Spark Skinning I noticed that some skins where made from the Skin class and some where based from the SparkSkin. I found this really confusing mainly because I wanted a clear definition in my mind as to when I use one over the other. So I tracked down Deepa and [...]]]></description>
			<content:encoded><![CDATA[<p>When learning and looking at Spark Skinning I noticed that some skins where made from the <em>Skin</em> class and some where based from the <em>SparkSkin</em>.</p>
<p>I found this really confusing mainly because I wanted a clear definition in my mind as to when I use one over the other. So I tracked down <a href="http://www.iamdeepa.com/blog/">Deepa</a> and asked her. The answer she gave was.. </p>
<blockquote><p>
Use <em>SparkSkin</em> when you are planning on doing styles, and <em>Skin</em> when you are not.
</p></blockquote>
<p><span id="more-1533"></span><br />
<strong>More information on Skins</strong><br />
To start looking at the details, <em>Group</em> dervices from <em>UIComponent</em>, and <em>Skin</em> derives from <em>Group</em> and <em>SparkSkin</em> derives from <em>Skin</em>.</p>
<p><strong>Details</strong><br />
All classes that subclass <em>UIComponent</em> have the <em>getStyle()</em> method.</p>
<p>The <em>Skin</em> class is the most lightweight class to include the <em>HostComponent</em> functionality.</p>
<p>The <em>SparkSkin</em> class includes arrays to effect the child component&#8217;s styles.</p>
<p>Override the <em>updateDisplayList()</em> function to include your own styles.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/06/02/the-difference-between-skin-and-sparkskin/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>9 Slice Scaling with Spark Skinning</title>
		<link>http://unitedmindset.com/jonbcampos/2010/05/27/9-slice-scaling-with-spark-skinning/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=9-slice-scaling-with-spark-skinning</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/05/27/9-slice-scaling-with-spark-skinning/#comments</comments>
		<pubDate>Thu, 27 May 2010 15:00:05 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[9 Slice Scaling]]></category>
		<category><![CDATA[spark skinning]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1519</guid>
		<description><![CDATA[Doing 9 Slice Scaling in Flex 4 Skins is actually very very easy however there were a few hurdles you had to be ready for if you want to do it right. Luckily the Flex team made some much requested changes to 9 Slice Scaling and now it is super easy. Let&#8217;s start by making [...]]]></description>
			<content:encoded><![CDATA[<p>Doing 9 Slice Scaling in Flex 4 Skins is actually very very easy however there were a few hurdles you had to be ready for if you want to do it right. Luckily the Flex team made some much requested changes to 9 Slice Scaling and now it is super easy.<br />
<img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/05/Screen-shot-2010-05-26-at-2.53.56-PM.png" alt="Scale9 Skin" title="9 Slice Scaling" width="392" height="342" class="alignnone size-full wp-image-1523" /><br />
<span id="more-1519"></span><br />
Let&#8217;s start by making a Spark Button in our Application and resizing it a few times:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;</span>s:Application xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>fx:Script<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066CC;">import</span> com.<span style="color: #006600;">unitedmindset</span>.<span style="color: #006600;">skins</span>.<span style="color: #006600;">ScalableSkin</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>fx:Script<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>fx:Declarations<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- Place non-visual elements <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">g</span>., services, value objects<span style="color: #66cc66;">&#41;</span> here --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>fx:Declarations<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:layout<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:VerticalLayout gap=<span style="color: #ff0000;">&quot;20&quot;</span> paddingBottom=<span style="color: #ff0000;">&quot;20&quot;</span> paddingLeft=<span style="color: #ff0000;">&quot;20&quot;</span> paddingRight=<span style="color: #ff0000;">&quot;20&quot;</span> paddingTop=<span style="color: #ff0000;">&quot;20&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:layout<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> skinClass=<span style="color: #ff0000;">&quot;com.unitedmindset.skins.ScalableSkin&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;20&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> skinClass=<span style="color: #ff0000;">&quot;com.unitedmindset.skins.ScalableSkin&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;100&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;100&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:<span style="color: #0066CC;">Button</span> skinClass=<span style="color: #ff0000;">&quot;com.unitedmindset.skins.ScalableSkin&quot;</span> <span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;300&quot;</span> <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;100&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
<span style="color: #66cc66;">&lt;/</span>s:Application<span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>You&#8217;ll notice I already have made my ScalableSkin, but right now it&#8217;s empty. This is just a stripped out version of the ButtonSkin created when using the &#8220;New > MXML Skin&#8221; Command.</p>
<p>The file current looks like this:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span><br />
<br />
<span style="color: #66cc66;">&lt;!</span>--<br />
<br />
&nbsp; &nbsp; ADOBE SYSTEMS INCORPORATED<br />
&nbsp; &nbsp; Copyright <span style="color: #cc66cc;">2008</span> Adobe Systems Incorporated<br />
&nbsp; &nbsp; All Rights Reserved.<br />
<br />
&nbsp; &nbsp; <span style="color: #006600;">NOTICE</span>: Adobe permits you to use, modify, <span style="color: #0066CC;">and</span> distribute <span style="color: #0066CC;">this</span> file<br />
&nbsp; &nbsp; <span style="color: #b1b100;">in</span> accordance <span style="color: #0066CC;">with</span> the terms of the license agreement accompanying it.<br />
<br />
--<span style="color: #66cc66;">&gt;</span><br />
<br />
<span style="color: #66cc66;">&lt;!</span>--- The <span style="color: #000000; font-weight: bold;">default</span> skin <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #b1b100;">for</span> the Spark <span style="color: #0066CC;">Button</span> component. &nbsp;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">@</span>see spark.<span style="color: #006600;">components</span>.<span style="color: #0066CC;">Button</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>langversion <span style="color: #cc66cc;">3.0</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>playerversion Flash <span style="color: #cc66cc;">10</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>playerversion AIR <span style="color: #cc66cc;">1.5</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>productversion Flex <span style="color: #cc66cc;">4</span><br />
--<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;</span>s:SparkSkin xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:fb=<span style="color: #ff0000;">&quot;http://ns.adobe.com/flashbuilder/2009&quot;</span> minWidth=<span style="color: #ff0000;">&quot;10&quot;</span> minHeight=<span style="color: #ff0000;">&quot;10&quot;</span> alpha.<span style="color: #006600;">disabled</span>=<span style="color: #ff0000;">&quot;0.5&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- host component --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>fx:Metadata<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/** <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* @copy spark.skins.spark.ApplicationSkin#hostComponent<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#91;</span>HostComponent<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;spark.components.Button&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>fx:Metadata<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- states --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:states<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;up&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;over&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;down&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;disabled&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:states<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #0066CC;">text</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Label id=<span style="color: #ff0000;">&quot;labelDisplay&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;textAlign=<span style="color: #ff0000;">&quot;center&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;maxDisplayedLines=<span style="color: #ff0000;">&quot;1&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;1&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;2&quot;</span> bottom=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Label<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #66cc66;">&lt;/</span>s:SparkSkin<span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>Just a blank skin with the label.</p>
<p><strong>My Problem with Early Beta Builds</strong><br />
When I first got into 9 Slice Scaling I thought that all you had to do is make a s:Group &#8211; which has scale9 build into it. However <strong>at the time</strong> if you didn&#8217;t include a background element that engulfed the entirety of the scaled item, then the skin came out horribly wrong.</p>
<p><strong>Current Solution</strong><br />
The Flex team has since listened to our pain and updated the 9 Slice Scaling process. Now my current solution looks as such:</p>
<div class="codecolorer-container actionscript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br /></div></td><td><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&lt;</span>?<span style="color: #0066CC;">xml</span> <span style="color: #0066CC;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #66cc66;">&gt;</span><br />
<br />
<span style="color: #66cc66;">&lt;!</span>--<br />
<br />
&nbsp; &nbsp; ADOBE SYSTEMS INCORPORATED<br />
&nbsp; &nbsp; Copyright <span style="color: #cc66cc;">2008</span> Adobe Systems Incorporated<br />
&nbsp; &nbsp; All Rights Reserved.<br />
<br />
&nbsp; &nbsp; <span style="color: #006600;">NOTICE</span>: Adobe permits you to use, modify, <span style="color: #0066CC;">and</span> distribute <span style="color: #0066CC;">this</span> file<br />
&nbsp; &nbsp; <span style="color: #b1b100;">in</span> accordance <span style="color: #0066CC;">with</span> the terms of the license agreement accompanying it.<br />
<br />
--<span style="color: #66cc66;">&gt;</span><br />
<br />
<span style="color: #66cc66;">&lt;!</span>--- The <span style="color: #000000; font-weight: bold;">default</span> skin <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #b1b100;">for</span> the Spark <span style="color: #0066CC;">Button</span> component. &nbsp;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">@</span>see spark.<span style="color: #006600;">components</span>.<span style="color: #0066CC;">Button</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>langversion <span style="color: #cc66cc;">3.0</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>playerversion Flash <span style="color: #cc66cc;">10</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>playerversion AIR <span style="color: #cc66cc;">1.5</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">@</span>productversion Flex <span style="color: #cc66cc;">4</span><br />
--<span style="color: #66cc66;">&gt;</span><br />
<span style="color: #66cc66;">&lt;</span>s:SparkSkin xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:fb=<span style="color: #ff0000;">&quot;http://ns.adobe.com/flashbuilder/2009&quot;</span> minWidth=<span style="color: #ff0000;">&quot;10&quot;</span> minHeight=<span style="color: #ff0000;">&quot;10&quot;</span> alpha.<span style="color: #006600;">disabled</span>=<span style="color: #ff0000;">&quot;0.5&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- host component --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>fx:Metadata<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span><span style="color: #66cc66;">&#91;</span>CDATA<span style="color: #66cc66;">&#91;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/** <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* @copy spark.skins.spark.ApplicationSkin#hostComponent<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#91;</span>HostComponent<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;spark.components.Button&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>fx:Metadata<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- states --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:states<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;up&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;over&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;down&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:State <span style="color: #0066CC;">name</span>=<span style="color: #ff0000;">&quot;disabled&quot;</span> <span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:states<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Group <span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;0&quot;</span> top=<span style="color: #ff0000;">&quot;0&quot;</span> bottom=<span style="color: #ff0000;">&quot;0&quot;</span> scaleGridLeft=<span style="color: #ff0000;">&quot;2&quot;</span> scaleGridRight=<span style="color: #ff0000;">&quot;8&quot;</span> scaleGridTop=<span style="color: #ff0000;">&quot;2&quot;</span> scaleGridBottom=<span style="color: #ff0000;">&quot;8&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Path <span style="color: #0066CC;">data</span>=<span style="color: #ff0000;">&quot;M 0 2 L 2 0 H 8 L 10 2 V 8 L 8 10 H 2 L 0 8 V 0 2&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:SolidColor <span style="color: #0066CC;">color</span>=<span style="color: #ff0000;">&quot;0x000000&quot;</span><span style="color: #66cc66;">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:fill<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Path<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Group<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;!</span>-- <span style="color: #0066CC;">text</span> --<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;</span>s:Label id=<span style="color: #ff0000;">&quot;labelDisplay&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;textAlign=<span style="color: #ff0000;">&quot;center&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;maxDisplayedLines=<span style="color: #ff0000;">&quot;1&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;1&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0066CC;">left</span>=<span style="color: #ff0000;">&quot;10&quot;</span> <span style="color: #0066CC;">right</span>=<span style="color: #ff0000;">&quot;10&quot;</span> top=<span style="color: #ff0000;">&quot;2&quot;</span> bottom=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&lt;/</span>s:Label<span style="color: #66cc66;">&gt;</span><br />
&nbsp; &nbsp; <br />
<span style="color: #66cc66;">&lt;/</span>s:SparkSkin<span style="color: #66cc66;">&gt;</span></div></td></tr></tbody></table></div>
<p>And we get the result that we see from the above image. The Group defines the Left/Right/Bottom/Top scale slices and the s:Path defines the shape to scale within the Group.</p>
<p>Again, this is a huge improvement to skinning with 9 Slice Scaling in Flex 3.</p>
<blockquote><p>
If you want more information on Spark Skinning check out some of my other posts:<br />
<a href="http://unitedmindset.com/jonbcampos/2009/07/02/flex-4-spark-skinning/">Flex 4 Spark Skinning</a><br />
<a href="http://unitedmindset.com/jonbcampos/2010/03/21/new-spark-skinning-workflow/">New Spark Skinning Workflow</a><br />
<a href="http://unitedmindset.com/jonbcampos/2009/11/09/flash-catalyst-the-missing-visual-editor/">Spark Skinning with Flash Catalyst</a>
</p></blockquote>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/05/27/9-slice-scaling-with-spark-skinning/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Thoughts on Spark and Skinning</title>
		<link>http://unitedmindset.com/jonbcampos/2010/05/19/thoughts-on-spark-and-skinning/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=thoughts-on-spark-and-skinning</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/05/19/thoughts-on-spark-and-skinning/#comments</comments>
		<pubDate>Wed, 19 May 2010 14:08:43 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[discussion]]></category>
		<category><![CDATA[spark components]]></category>
		<category><![CDATA[spark skinning]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1476</guid>
		<description><![CDATA[Recently while talking to other D-Flex developers about the new Spark Architecture and Spark Skinning I&#8217;ve been hearing lots of complaints. Without talking about other projects like Reflex and their pros and cons there are many people that seen to have some sort of fundamental issue with Spark Skinning and the Spark Component model. I [...]]]></description>
			<content:encoded><![CDATA[<p>Recently while talking to other <a href="http://d-flex.groups.adobe.com/">D-Flex developers </a> about the new Spark Architecture and Spark Skinning I&#8217;ve been hearing lots of complaints. Without talking about other projects like <a href="http://groups.google.com/group/reflex-platform">Reflex</a> and their pros and cons there are many people that seen to have some sort of fundamental issue with Spark Skinning and the Spark Component model.</p>
<p>I start by saying that I honestly like the Spark model and decoupling the view from the component&#8217;s logic.</p>
<p>I want to go into a few argument points that seem to keep coming up and my thoughts on them. I will let you know now that as I am starting to write this I&#8217;m not 100% sure where this post will end up &#8211; but there is some fun in that right?<br />
<span id="more-1476"></span><br />
<strong>Spark Skinning breaks inheritance and causes for lots of code rewrite.</strong><br />
The first argument I keep hearing is how you can&#8217;t follow inheritance with Spark Skinning. People keep complaining that to make a simple change requires an entire new skin and that it is a waste of coding.</p>
<p>Why are you reusing skins? Usual design skins are going to be unique to the project and piece you are making, if you are really needing to reuse the skin just apply the skin to another component. <em>But if I want to make one small change I have to make a new skin?</em> Really? Have you not heard of CSS? Many developers that I&#8217;ve seen getting into Spark Skinning seemed to have forgotten that they can use CSS on their Spark Skins. You have some amazing skin that you want to change from <em>Red</em> to <em>Blue</em>? Go for it! Add a simple style and use CSS. Now your skin can be used and changed while keeping the same underlying code.</p>
<p>But you still say you want to reuse your skins and CSS isn&#8217;t enough? Go for it, break down and make the skin in total Actionscript, it&#8217;s really not that hard, and you can use your inheritance. Now is all that coding really worth it to be able to make the Skins that support inheritance? If so congrats, you&#8217;ve done a good job. If not, maybe you should have just copied and pasted a skin together and made the one change you needed to make that CSS couldn&#8217;t handle.</p>
<blockquote><p>
I&#8217;m honestly tired of all the developers on their high horse preaching about perfect architecture when they can&#8217;t even get their job done because they spent so long debating which design pattern would be best to handle some crazy problem.</p>
<p>I am a fan of good architecture and like to make sure that a plan is followed and standards are achieved, but when there isn&#8217;t any real benefit and you&#8217;re arguing over semantics then I think you are arguing for arguing sake and I&#8217;m not listening.
</p></blockquote>
<p><strong>I don&#8217;t like MXML, I want to Skin in Actionscript</strong><br />
Okay, go for it. No one is stopping you. And you can do anything that is done in MXML in Actionscript.</p>
<p><strong>Doesn&#8217;t using a specific HostComponent tightly couple a Skin to a Component?!</strong><br />
Yes, but when are you going to be using a List skin on a Button? The Skin needs to know what it is being attached to. This is a one way coupling and makes sense to me. How would you repurpose a skin without changing what component it is going to?</p>
<p><strong>Skinning takes to long</strong><br />
Yes, skinning takes a while. If you want something to look custom, then you&#8217;ll have to put in the time to make it. If you don&#8217;t like skinning then just use CSS and the styles that the Flex team has provided. That&#8217;s basically all the options you had in Flex 3 anyways.</p>
<p><strong>Skinning creates twice as many visual components as Flex 3 components</strong><br />
Actually, while there are plenty of visual components that are created, I think that one thing many people forget is that the main component actually isn&#8217;t a visual component. All that code is actually lifted off the visual display list.</p>
<p><strong>Skinning allows for coding to go on in the skinning class</strong><br />
Yes you CAN do a lot of coding in the skinning class. These classes follow the full Flex component lifecycle and you can make an entire application with code in your skin class&#8230; not that you SHOULD. </p>
<p>Some people see this as a major flaw to the entire skinning architecture, I see it as choice. </p>
<p>While I don&#8217;t appreciate junior dev putting services in a skin file, I do appreciate the option to have it there for that one weird case that coding like this makes sense. However the architecture and framework shouldn&#8217;t limit you, that would just make our jobs harder as we do lots of code around.</p>
<blockquote><p>We all should learn best practices, code in ways that reduce confusion, keep code DRY, respect encapsulation, and maintain reusability but we should be free to bend these rules.</p></blockquote>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/05/19/thoughts-on-spark-and-skinning/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>New Position in Dedo Interactive Inc.</title>
		<link>http://unitedmindset.com/jonbcampos/2010/04/30/new-position-in-dedo-inc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=new-position-in-dedo-inc</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/04/30/new-position-in-dedo-inc/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 13:59:39 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[dedo interactive]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1431</guid>
		<description><![CDATA[For the last two years I have been proud to work for the clients of M. Miller &#038; Associates. For our clients we have created some amazing rich internet applications and data visualizations using Flex and the Flash Platform with many other complimenting technologies. But now this must come to an end&#8230; ish. Now&#8230; Over [...]]]></description>
			<content:encoded><![CDATA[<p>For the last two years I have been proud to work for the clients of <a href="http://mmillerassociates.com/" target="_blank">M. Miller &#038; Associates</a>. For our clients we have created some amazing rich internet applications and data visualizations using Flex and the Flash Platform with many other complimenting technologies. But now this must come to an end&#8230; ish.</p>
<p>Now&#8230;<br />
<img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/04/Screen-shot-2010-04-22-at-10.03.50-PM.png" alt="Dedo Interactive, Inc. Logo" title="Dedo Interactive, Inc. Logo" width="263" height="256" class="alignnone size-full wp-image-1436"/><br />
<span id="more-1431"></span><br />
Over the last few months M. Miller &#038; Associates has started a new company called <a href="http://dedoinc.com/" target="_blank">Dedo Interactive Inc.</a>. Our focus has been to redefine how users interact with their data. We are using our years of experience in creating enterprise level applications with our knowledge in creating new and custom interactive displays to give our clients a whole new way to interact and collaborate with their data.</p>
<p>I am very happy to keep working with some of the best bosses and an extremely talented team headed up by <a href="http://www.danieldura.com/" target="_blank">Danny Dura</a> and myself. I will serve at Dedo as the Director of Software Development, lending my experience of application development and my extreme perfectionist attitude of code quality to all of our running projects.</p>
<p>Over the next few months we hope to continue to push what is possible with the Flash Platform and other technologies &#8211; along with making things not possible with HTML5. I&#8217;m sure you will continue to see the fruits of our labor and I hope to be able to inspire others as much as others have inspired myself.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/04/30/new-position-in-dedo-inc/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Connect Pro Available in iTunes Store</title>
		<link>http://unitedmindset.com/jonbcampos/2010/02/24/connect-pro-available-in-itunes-store/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=connect-pro-available-in-itunes-store</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/02/24/connect-pro-available-in-itunes-store/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 22:42:41 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[itunes]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1362</guid>
		<description><![CDATA[This new Adobe Product release allows for full interaction with Adobe Connect for iPad and iPhone devices. So now you can watch, list, and interact with real-time presentations from your mobile device. More information and key features provided in the following video. Oh&#8230; and it&#8217;s FREE! Hint: Search &#8220;Adobe Connect&#8221; to find the app. More [...]]]></description>
			<content:encoded><![CDATA[<p>This new Adobe Product release allows for full interaction with Adobe Connect for iPad and iPhone devices. So now you can watch, list, and interact with real-time presentations from your mobile device. More information and key features provided in the following video.</p>
<p>Oh&#8230; and it&#8217;s <strong>FREE</strong>!</p>
<p>Hint: Search &#8220;Adobe Connect&#8221; to find the app.</p>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_0" width="500/500" height="300">
      <param name="movie" value="https://admin.adobe.acrobat.com/_a295153/connectpromobile/output/ConnectProMobile.swf" />
      <param name="allowfullscreen" value="true" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="https://admin.adobe.acrobat.com/_a295153/connectpromobile/output/ConnectProMobile.swf" width="500/500" height="300" allowfullscreen="true">
      <!--<![endif]-->
        Sorry, it&#039;s a video and HTML5 just isn&#039;t there yet.
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>

<p>More details at the <a href="http://blogs.adobe.com/acrobatconnect/2010/02/adobe_acrobat_connect_pro_mobi.html" target="_blank" class="broken_link">Adobe Connect Pro Blog Site</a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/02/24/connect-pro-available-in-itunes-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIA Job Trends 2010</title>
		<link>http://unitedmindset.com/jonbcampos/2010/02/03/ria-job-trends-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ria-job-trends-2010</link>
		<comments>http://unitedmindset.com/jonbcampos/2010/02/03/ria-job-trends-2010/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 15:00:31 +0000</pubDate>
		<dc:creator>Jonathan Campos</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[JavaFx]]></category>
		<category><![CDATA[job trends]]></category>
		<category><![CDATA[Macromedia Flex]]></category>
		<category><![CDATA[Microsoft Silverlight]]></category>
		<category><![CDATA[Open Laszlo]]></category>
		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://unitedmindset.com/jonbcampos/?p=1312</guid>
		<description><![CDATA[Last year around this time I was asked to make a presentation on RIA trends to developers. With the down economy (something just don&#8217;t change do they?) people in the group were really interested in the job trends for some of the different RIA development languages. Using indeed.com I was able to find the following [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://unitedmindset.com/jonbcampos/2009/02/05/ria-job-trends/">Last year</a> around this time I was asked to make a presentation on RIA trends to developers. With the down economy (something just don&#8217;t change do they?) people in the group were really interested in the job trends for some of the different RIA development languages. Using <a href="http://indeed.com">indeed.com</a> I was able to find the following stats.</p>
<blockquote><p>I&#8217;ve made some updates to this to make it a bit more specific in the search. Hopefully the new results are more reflective of the actual current environment.</p></blockquote>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29%2C+%28%28silverlight%29+or+%28microsoft+silverlight%29%29%2C+dojo%2C+%28%28openlaszlo%29+or+%28open+laszlo%29%29%2C+javafx%2C+jquery" title="((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)), ((silverlight) or (microsoft silverlight)), dojo, ((openlaszlo) or (open laszlo)), javafx, jquery Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29%2C+%28%28silverlight%29+or+%28microsoft+silverlight%29%29%2C+dojo%2C+%28%28openlaszlo%29+or+%28open+laszlo%29%29%2C+javafx%2C+jquery" border="0" alt="((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)), ((silverlight) or (microsoft silverlight)), dojo, ((openlaszlo) or (open laszlo)), javafx, jquery Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29%2C+%28%28silverlight%29+or+%28microsoft+silverlight%29%29%2C+dojo%2C+%28%28openlaszlo%29+or+%28open+laszlo%29%29%2C+javafx%2C+jquery">((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)), ((silverlight) or (microsoft silverlight)), dojo, ((openlaszlo) or (open laszlo)), javafx, jquery Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-((flex-developer)-or-(macromedia-flex)-or-(adobe-flex)-or-(actionscript-flex))-jobs.html">((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)) jobs</a> &#8211; <a href="http://www.indeed.com/q-((silverlight)-or-(microsoft-silverlight))-jobs.html">((silverlight) or (microsoft silverlight)) jobs</a> &#8211; <a href="http://www.indeed.com/q-dojo-jobs.html">dojo jobs</a> &#8211; <a href="http://www.indeed.com/q-((openlaszlo)-or-(open-laszlo))-jobs.html">((openlaszlo) or (open laszlo)) jobs</a> &#8211; <a href="http://www.indeed.com/q-javafx-jobs.html">javafx jobs</a> &#8211; <a href="http://www.indeed.com/q-jquery-jobs.html">jquery jobs</a></td>
</tr>
</table>
</div>
<p><span id="more-1312"></span><br />
Breaking out the individual sections you will see&#8230;</p>
<p><strong>Adobe Flex (Macromedia Flex)</strong><br />
Keeping strong and great growth!</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29" title="((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)) Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29" border="0" alt="((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)) Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29">((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)) Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-((flex-developer)-or-(macromedia-flex)-or-(adobe-flex)-or-(actionscript-flex))-jobs.html">((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)) jobs</a></td>
</tr>
</table>
</div>
<p><strong>Microsoft Silverlight</strong><br />
Wow! Look at that growth!</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=%28%28silverlight%29+or+%28microsoft+silverlight%29%29" title="((silverlight) or (microsoft silverlight)) Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=%28%28silverlight%29+or+%28microsoft+silverlight%29%29" border="0" alt="((silverlight) or (microsoft silverlight)) Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=%28%28silverlight%29+or+%28microsoft+silverlight%29%29">((silverlight) or (microsoft silverlight)) Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-((silverlight)-or-(microsoft-silverlight))-jobs.html">((silverlight) or (microsoft silverlight)) jobs</a></td>
</tr>
</table>
</div>
<p><strong>OpenLaszlo</strong><br />
It jumped for a bit, but I think this is the last year to include this chart.</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=%28%28openlaszlo%29+or+%28open+laszlo%29%29" title="((openlaszlo) or (open laszlo)) Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=%28%28openlaszlo%29+or+%28open+laszlo%29%29" border="0" alt="((openlaszlo) or (open laszlo)) Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=%28%28openlaszlo%29+or+%28open+laszlo%29%29">((openlaszlo) or (open laszlo)) Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-((openlaszlo)-or-(open-laszlo))-jobs.html">((openlaszlo) or (open laszlo)) jobs</a></td>
</tr>
</table>
</div>
<p><strong>Ajax (Specifically Dojo and JQuery)</strong><br />
Ajax is a hard one to include. Not because I don&#8217;t believe that it is an RIA technology, but because of how encompassing the word is. For this I will break it down to Dojo &#038; JQuery, two of the specific frameworks. Similar to how Actionscript is to Flex, Javascript is to Dojo/JQuery. I would argue that Dojo/JQuery are the most popular Javascript framework for creating RIAs.</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=dojo%2C+jquery" title="dojo, jquery Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=dojo%2C+jquery" border="0" alt="dojo, jquery Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=dojo%2C+jquery">dojo, jquery Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-dojo-jobs.html">dojo jobs</a> &#8211; <a href="http://www.indeed.com/q-jquery-jobs.html">jquery jobs</a></td>
</tr>
</table>
</div>
<p><strong>JavaFx</strong><br />
Last year it was the new kid on the block and has had it&#8217;s ups and downs.</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=Javafx" title="Javafx Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=Javafx" border="0" alt="Javafx Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=Javafx">Javafx Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-Javafx-jobs.html">Javafx jobs</a></td>
</tr>
</table>
</div>
<p><strong>New Additions</strong><br />
This year I wanted to add a few more to my search. Obviously there are other technologies that go into RIAs, but to just say &#8220;Flash&#8221; or &#8220;HTML&#8221; would definitely get a different result then what we are looking for. And yes, I didn&#8217;t include any server-side technologies as I am focusing on front-end pieces. Though they are also important in the RIA stack.</p>
<p><strong>Objective-C</strong><br />
Had to include this in there as a representative of the iPhone Apps market.</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=objective-c" title="objective-c Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=objective-c" border="0" alt="objective-c Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=objective-c">objective-c Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/jobs?q=objective-c">objective-c jobs</a></td>
</tr>
</table>
</div>
<p><strong>GWT (Google Web Toolkit)</strong><br />
By request, the addition of GWT. Again, strong growths as in all RIA sectors.</p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=GWT" title="GWT Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=GWT" border="0" alt="GWT Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=GWT">GWT Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-GWT-jobs.html">GWT jobs</a></td>
</tr>
</table>
</div>
<p>And Finally, the <strong>Superchart</strong> with all the technologies together. This just tells me that RIA technologies are just growing immensely. </p>
<div style="width:540px">
<a href="http://www.indeed.com/jobtrends?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29%2C+%28%28silverlight%29+or+%28microsoft+silverlight%29%29%2C+dojo%2C+%28%28openlaszlo%29+or+%28open+laszlo%29%29%2C+javafx%2C+jquery%2C+objective-c%2C+gwt" title="((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)), ((silverlight) or (microsoft silverlight)), dojo, ((openlaszlo) or (open laszlo)), javafx, jquery, objective-c, gwt Job Trends"><br />
<img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29%2C+%28%28silverlight%29+or+%28microsoft+silverlight%29%29%2C+dojo%2C+%28%28openlaszlo%29+or+%28open+laszlo%29%29%2C+javafx%2C+jquery%2C+objective-c%2C+gwt" border="0" alt="((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)), ((silverlight) or (microsoft silverlight)), dojo, ((openlaszlo) or (open laszlo)), javafx, jquery, objective-c, gwt Job Trends graph"><br />
</a></p>
<table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%">
<tr>
<td><a href="http://www.indeed.com/jobtrends?q=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29%2C+%28%28silverlight%29+or+%28microsoft+silverlight%29%29%2C+dojo%2C+%28%28openlaszlo%29+or+%28open+laszlo%29%29%2C+javafx%2C+jquery%2C+objective-c%2C+gwt">((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)), ((silverlight) or (microsoft silverlight)), dojo, ((openlaszlo) or (open laszlo)), javafx, jquery, objective-c, gwt Job Trends</a></td>
<td align="right"><a href="http://www.indeed.com/q-((flex-developer)-or-(macromedia-flex)-or-(adobe-flex)-or-(actionscript-flex))-jobs.html">((flex developer) or (macromedia flex) or (adobe flex) or (actionscript flex)) jobs</a> &#8211; <a href="http://www.indeed.com/q-((silverlight)-or-(microsoft-silverlight))-jobs.html">((silverlight) or (microsoft silverlight)) jobs</a> &#8211; <a href="http://www.indeed.com/q-dojo-jobs.html">dojo jobs</a> &#8211; <a href="http://www.indeed.com/q-((openlaszlo)-or-(open-laszlo))-jobs.html">((openlaszlo) or (open laszlo)) jobs</a> &#8211; <a href="http://www.indeed.com/q-javafx-jobs.html">javafx jobs</a> &#8211; <a href="http://www.indeed.com/q-jquery-jobs.html">jquery jobs</a> &#8211; <a href="http://www.indeed.com/jobs?q=objective-c">objective-c jobs</a> &#8211; <a href="http://www.indeed.com/q-gwt-jobs.html">gwt jobs</a></td>
</tr>
</table>
</div>
<p>And finally, the salary trend comparison for each:<br />
<div id="attachment_1358" class="wp-caption alignnone" style="width: 615px"><a href="http://www.indeed.com/salary?q1=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29&#038;l1=&#038;q2=%28%28silverlight%29+or+%28microsoft+silverlight%29%29&#038;l2=&#038;q3=dojo&#038;l3=&#038;q4=%28%28openlaszlo%29+or+%28open+laszlo%29%29&#038;l4=&#038;q5=javafx&#038;l5=&#038;q6=jquery&#038;l6=&#038;q7=objective-c&#038;l7=&#038;q8=gwt&#038;l8="><img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/02/salaryComparison1.PNG" alt="Salary Comparison" title="salaryComparison" width="605" height="464" class="size-full wp-image-1358" /></a><p class="wp-caption-text">Salary Comparison</p></div></p>
<div id="attachment_1359" class="wp-caption alignnone" style="width: 613px"><a href="http://www.indeed.com/salary?q1=%28%28flex+developer%29+or+%28macromedia+flex%29+or+%28adobe+flex%29+or+%28actionscript+flex%29%29&#038;l1=&#038;q2=%28%28silverlight%29+or+%28microsoft+silverlight%29%29&#038;l2=&#038;q3=dojo&#038;l3=&#038;q4=%28%28openlaszlo%29+or+%28open+laszlo%29%29&#038;l4=&#038;q5=javafx&#038;l5=&#038;q6=jquery&#038;l6=&#038;q7=objective-c&#038;l7=&#038;q8=gwt&#038;l8="><img src="http://unitedmindset.com/jonbcampos/wp-content/uploads/2010/02/salaryTrends2.PNG" alt="Salary Trends" title="salaryTrends" width="603" height="303" class="size-full wp-image-1359" /></a><p class="wp-caption-text">Salary Trends</p></div>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://unitedmindset.com/jonbcampos/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://unitedmindset.com/jonbcampos/2010/02/03/ria-job-trends-2010/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
