<?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>Remus Stratulat - On the Stre@m &#187; Adobe AIR</title>
	<atom:link href="http://www.stratulat.com/blog/tag/adobe-air/feed" rel="self" type="application/rss+xml" />
	<link>http://www.stratulat.com/blog</link>
	<description>This is my personal blog</description>
	<lastBuildDate>Wed, 11 Aug 2010 11:49:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Improve Flash 10.1 and AIR 2.0</title>
		<link>http://www.stratulat.com/blog/improve-flash-10-1-and-air-2-0</link>
		<comments>http://www.stratulat.com/blog/improve-flash-10-1-and-air-2-0#comments</comments>
		<pubDate>Mon, 08 Feb 2010 07:21:59 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flash 10.1]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=248</guid>
		<description><![CDATA[Ted Patrick has this post about Flash 10.1 and AIR 2.0. http://onflash.org/ted/2010/02/improve-flash-101-and-air-20.php These platforms are in beta and our support is needed to use them in the real world and report any problems we may find.]]></description>
			<content:encoded><![CDATA[<p>Ted Patrick has this post about Flash 10.1 and AIR 2.0. <a href="http://onflash.org/ted/2010/02/improve-flash-101-and-air-20.php">http://onflash.org/ted/2010/02/improve-flash-101-and-air-20.php</a></p>
<p><a href="http://onflash.org/ted/2010/02/improve-flash-101-and-air-20.php"></a>These platforms are in beta and our support is needed to use them in the real world and report any problems we may find.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/improve-flash-10-1-and-air-2-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR agenda</title>
		<link>http://www.stratulat.com/blog/air-agenda</link>
		<comments>http://www.stratulat.com/blog/air-agenda#comments</comments>
		<pubDate>Fri, 22 Jan 2010 13:57:17 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=246</guid>
		<description><![CDATA[Today I got an email from my bank. I thought it to be one of the usual emails telling me about new services that they have, credit cards or security threats that I should be aware. Today thou I got a surprise: agendaBT. An AIR application that is a very nice agenda application. You can [...]]]></description>
			<content:encoded><![CDATA[<p>Today I got an email from my bank. I thought it to be one of the usual emails telling me about new services that they have, credit cards or security threats that I should be aware.</p>
<p>Today thou I got a surprise: <strong><a title="agendaBT" href="http://agenda.bancatransilvania.ro/">agendaBT</a></strong>. An AIR application that is a very nice agenda application. You can take notes per days using different colors, highlight what you have written or just draw. And while this is not particularly exciting by itself, the design is impressive, I really like it. You can see for yourself:</p>
<div class="wp-caption alignnone" style="width: 558px"><img title="agendaBT" src="http://agenda.bancatransilvania.ro/lib/images/screenshot.png" alt="agendaBT" width="548" height="342" /><p class="wp-caption-text">agendaBT</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/air-agenda/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Polaris &#8211; Adobe AIR desktop reporting tool for Google Analytics</title>
		<link>http://www.stratulat.com/blog/polaris-adobe-air-desktop-reporting-tool-for-google-analytics</link>
		<comments>http://www.stratulat.com/blog/polaris-adobe-air-desktop-reporting-tool-for-google-analytics#comments</comments>
		<pubDate>Fri, 08 May 2009 12:56:28 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Polaris]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=218</guid>
		<description><![CDATA[I just found out from a Tweet post about this tool and I rushed to install it. It is simple to use and free to manage one website profile. It has nice charts and visual transitions. I would love to have this tool for WordPress stats also]]></description>
			<content:encoded><![CDATA[<p>I just found out from a Tweet post about this tool and I rushed to install it.<br />
<div id="attachment_219" class="wp-caption alignnone" style="width: 470px"><a href="http://www.desktop-reporting.com/polaris.html"><img src="http://www.stratulat.com/blog/wp-content/polaris.jpg" alt="Polaris - Adobe AIR desktop reporing for Google Analytics" title="polaris" width="460" height="270" class="size-full wp-image-219" /></a><p class="wp-caption-text">Polaris - Adobe AIR desktop reporing for Google Analytics</p></div></p>
<p>It is simple to use and free to manage one website profile. It has nice charts and visual transitions. I would love to have this tool for WordPress stats also <img src='http://www.stratulat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/polaris-adobe-air-desktop-reporting-tool-for-google-analytics/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&quot;Bended&quot; Spaz &#8211; a practical application for Pixel Bender</title>
		<link>http://www.stratulat.com/blog/bended-spaz-a-practical-application-for-pixel-bender</link>
		<comments>http://www.stratulat.com/blog/bended-spaz-a-practical-application-for-pixel-bender#comments</comments>
		<pubDate>Thu, 27 Nov 2008 13:14:23 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Spaz]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=179</guid>
		<description><![CDATA[I have written before about Spaz &#8211; the Twitter client I use. Because it is written in AIR and because is open source and AIR 1.5 just got out with new interesting features, I thought, why not &#8220;bend&#8221; a little Spaz, just for fun. I say just for fun because it was not something done [...]]]></description>
			<content:encoded><![CDATA[<p>I have written before about <a href="http://funkatron.com/spaz">Spaz</a> &#8211; the Twitter client I use.</p>
<p>Because it is written in AIR and because is open source and AIR 1.5 just got out with new interesting features, I thought, why not &#8220;bend&#8221; a little Spaz, just for fun.</p>
<p>I say just for fun because it was not something done after a careful consideration of the usefulness of adding this effect in Spaz.</p>
<p>I have used as a starting point the BlaskBookSafe application described in my previous post. The changes made in Spaz were as follows:</p>
<ol>
<li>I have updated <em><strong>spaz/assets/air/AIRAliases.js</strong></em> with the last one provided by Adobe AIR SDK 1.5
<li>I have copied the <strong><em>bender </em></strong>folder from BlackBookSafe into spaz
<li>I have copied <em><strong>BenderEffect.js</strong></em> and <em><strong>Tween.js</strong></em> from BBS to <em><strong>spaz/assets/lib </strong></em>folder
<li>I have added some small pieces of code in <strong><em>spaz/index.html</em></strong> and <strong><em>spaz/assets/assets/spaz.prefs.js</em></strong> </li>
</ol>
<p>The added code in index.html was of course importing those two scripts added in the lib folder. We need them in order to create the effect and also to &#8220;tween&#8221; it, to transform the bend into an animation.</p>
<p>The code from spaz.prefs.js is a little more complicated and it creates the bend effect and starts the tween:</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="str">'window-alpha'</span>: {</pre>
<pre><span class="lnum">   2:  </span>    setUI: <span class="kwrd">function</span>(value) {</pre>
<pre class="alt"><span class="lnum">   3:  </span>        $(<span class="str">'#window-alpha'</span>).val(parseInt(value));</pre>
<pre><span class="lnum">   4:  </span>    },</pre>
<pre class="alt"><span class="lnum">   5:  </span>    onChange: <span class="kwrd">function</span>(value) {</pre>
<pre><span class="lnum">   6:  </span>        <span class="rem">//alert(percentage+"%");</span></pre>
<pre class="alt"><span class="lnum">   7:  </span>        percentage = parseInt(value);</pre>
<pre><span class="lnum">   8:  </span>        <span class="kwrd">if</span> (isNaN(percentage)) {</pre>
<pre class="alt"><span class="lnum">   9:  </span>            percentage = 100;</pre>
<pre><span class="lnum">  10:  </span>        }</pre>
<pre class="alt"><span class="lnum">  11:  </span>        <span class="kwrd">if</span> (percentage &lt; 25) {</pre>
<pre><span class="lnum">  12:  </span>            percentage = 25;</pre>
<pre class="alt"><span class="lnum">  13:  </span>        }</pre>
<pre><span class="lnum">  14:  </span>        <span class="kwrd">var</span> val = parseInt(percentage) / 100;</pre>
<pre class="alt"><span class="lnum">  15:  </span>        <span class="kwrd">if</span> (isNaN(val)) {</pre>
<pre><span class="lnum">  16:  </span>            val = 1;</pre>
<pre class="alt"><span class="lnum">  17:  </span>        } <span class="kwrd">else</span> <span class="kwrd">if</span> (val &gt;= 1) {</pre>
<pre><span class="lnum">  18:  </span>            val = 1;</pre>
<pre class="alt"><span class="lnum">  19:  </span>        } <span class="kwrd">else</span> <span class="kwrd">if</span> (val &lt;= 0) {</pre>
<pre><span class="lnum">  20:  </span>            val = 1;</pre>
<pre class="alt"><span class="lnum">  21:  </span>        }</pre>
<pre><span class="lnum">  22:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  23:  </span>        <span class="rem">/*  the bending code */</span></pre>
<pre><span class="lnum">  24:  </span>        BlenderEffect.get(<span class="str">'app:/bender/page.pbj'</span>, <span class="kwrd">function</span>(shader){</pre>
<pre class="alt"><span class="lnum">  25:  </span>            <span class="kwrd">var</span> tween = BlenderEffect.createShaderTransition(window.htmlLoader, </pre>
<pre><span class="lnum">  26:  </span>                shader , 1200, Tween.effects.elasticEase);</pre>
<pre class="alt"><span class="lnum">  27:  </span>            tween.hideOnFinish = <span class="kwrd">false</span>; </pre>
<pre><span class="lnum">  28:  </span>            tween.start(<span class="kwrd">true</span>);</pre>
<pre class="alt"><span class="lnum">  29:  </span>        });</pre>
<pre><span class="lnum">  30:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  31:  </span>        window.htmlLoader.alpha = val;</pre>
<pre><span class="lnum">  32:  </span>    },</pre>
<pre class="alt"><span class="lnum">  33:  </span>    check: <span class="kwrd">function</span>() {</pre>
<pre><span class="lnum">  34:  </span>.....</pre>
<pre class="alt"><span class="lnum">  35:  </span>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>The addition was inside the <em>onChange</em> method for the <em>window-alpha</em> setting.</p>
<p>The reason I choose this method was to have a visual indication for changing the alpha setting from preferences. With all this in place, when changing the alpha setting for Spaz a nice effect will warp a little bit the window. I will let you to discover this as an image will not do it.</p>
<p>In the mean time I will send an email to Funkatron, maybe they will be interested in incorporating this in a more useful way <img src='http://www.stratulat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/bended-spaz-a-practical-application-for-pixel-bender/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Adobe AIR 1.5 is out, now we can bend some pixels.</title>
		<link>http://www.stratulat.com/blog/adobe-air-15-is-out-now-we-can-bend-some-pixels</link>
		<comments>http://www.stratulat.com/blog/adobe-air-15-is-out-now-we-can-bend-some-pixels#comments</comments>
		<pubDate>Tue, 18 Nov 2008 08:34:07 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Pixel Bender]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=171</guid>
		<description><![CDATA[The last version of Adobe AIR is 1.5 and brings a lot new features especially through integrating Flash Player 10 and updating the included WebKit. More about this can be read on Adobe AIR team blog. What I want to talk about is a new sample made specially to show the new capabilities of this [...]]]></description>
			<content:encoded><![CDATA[<p>The last version of Adobe AIR is 1.5 and brings a lot new features especially through integrating Flash Player 10 and updating the included WebKit. More about this can be read on <a title="Adobe AIR team blog" href="http://blogs.adobe.com/air/">Adobe AIR team blog</a>.</p>
<p>What I want to talk about is a new sample made specially to show the new capabilities of this release, <a title="BlackBookSafe" href="http://www.adobe.com/devnet/air/ajax/samples.html#blackbooksafe">BlackBookSafe</a>. It is an HTML/JavaScript application using jQuery framework and leveraging the encrypted local database, 3d transformations and Pixel Bender effects. Indeed, with the new AIR you can &#8220;bend pixels&#8221; <img src='http://www.stratulat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<div id="attachment_172" class="wp-caption alignnone" style="width: 349px"><img class="size-full wp-image-172" title="bbs1" src="http://www.stratulat.com/blog/wp-content/bbs1.jpg" alt="BlackBookSafe screen" width="339" height="488" /><p class="wp-caption-text">BlackBookSafe screen</p></div>
<div id="attachment_174" class="wp-caption alignnone" style="width: 368px"><img class="size-full wp-image-174" title="bbs2" src="http://www.stratulat.com/blog/wp-content/bbs2.jpg" alt="BlackBookSafe bended screen" width="358" height="490" /><p class="wp-caption-text">BlackBookSafe bended screen</p></div>
<p>The effect was created using the <a title="Adobe Pixel Bender" href="http://labs.adobe.com/technologies/pixelbender/">Adobe Pixel Bender</a> available in Flash Player. And yes, I said that BlackBookSafe was created using HTML and JavaScript. You want to find out how was it done? <a href="http://corlan.org/">Mihai Corlan</a>, an Adobe Platform Evangelist wrote an article detailing exactly how this application was created in <a title="BlackBookSafe: Anatomy of an AIR 1.5 application" href="http://www.adobe.com/devnet/air/ajax/articles/blackbooksafe_anatomy.html">BlackBookSafe: Anatomy of an AIR 1.5 application</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/adobe-air-15-is-out-now-we-can-bend-some-pixels/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Search for Flex and AIR knowledge</title>
		<link>http://www.stratulat.com/blog/search-for-flex-and-air-knowledge</link>
		<comments>http://www.stratulat.com/blog/search-for-flex-and-air-knowledge#comments</comments>
		<pubDate>Wed, 15 Oct 2008 10:56:58 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[consulting]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=155</guid>
		<description><![CDATA[The Adobe Platform Evangelists team are trying to find who’s doing Flex &#38; AIR in Central and Easter Europe. If you are a company/independent consultant that knows Flex and/or AIR please drop a note here (corlan.org) specifying: -    Your name -    Type (agency/independent consultant) -    WebSite -    Contact info -    Address/Location -    Any other comments]]></description>
			<content:encoded><![CDATA[<p>The Adobe Platform Evangelists team are trying to find who’s doing Flex &amp; AIR in <strong>Central</strong> and <strong>Easter Europe</strong>. If you are a company/independent consultant that knows Flex and/or AIR please drop a note here (<a href="http://corlan.org/2008/10/15/are-you-a-freelancer-or-consultant-or-agency-who-has-deep-knowledge-in-flash-flex-air-fms/">corlan.org</a>) specifying:<br />
-    Your name<br />
-    Type (agency/independent consultant)<br />
-    WebSite<br />
-    Contact info<br />
-    Address/Location<br />
-    Any other comments</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/search-for-flex-and-air-knowledge/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter client in AIR</title>
		<link>http://www.stratulat.com/blog/twitter-client-in-air</link>
		<comments>http://www.stratulat.com/blog/twitter-client-in-air#comments</comments>
		<pubDate>Mon, 25 Aug 2008 10:43:41 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Spaz]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=143</guid>
		<description><![CDATA[I am not a big user of Twitter, however I wanted to have a Twitter client installed on my laptop, just in case. And, of course , I searched for an AIR one. What I found was Spaz, a Twitter client written in JavaScript as an AIR application.]]></description>
			<content:encoded><![CDATA[<p>I am not a big user of Twitter, however I wanted to have a Twitter client installed on my laptop, just in case. And, of course <img src='http://www.stratulat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , I searched for an AIR one. What I found was <a href="http://funkatron.com/spaz">Spaz</a>, a Twitter client written in JavaScript as an AIR application.</p>
<div id="attachment_144" class="wp-caption alignnone" style="width: 296px"><a href="http://funkatron.com/spaz"><img class="size-full wp-image-144" title="spaz" src="http://www.stratulat.com/blog/wp-content/spaz.jpg" alt="Spaz is a Twitter client for users who value free, open-source software, attractive design, and customizability" width="286" height="664" /></a><p class="wp-caption-text">Spaz is a Twitter client for users who value free, open-source software, attractive design, and customizability.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/twitter-client-in-air/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Update your JavaScript AIR application with ease.</title>
		<link>http://www.stratulat.com/blog/update-your-javascript-air-application-with-ease</link>
		<comments>http://www.stratulat.com/blog/update-your-javascript-air-application-with-ease#comments</comments>
		<pubDate>Fri, 27 Jun 2008 08:14:59 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/update-your-javascript-air-application-with-ease</guid>
		<description><![CDATA[Web application = instant update One of the most powerful features of a web application is instant update. Your client doesn&#8217;t need to do anything when you fix some bugs in your web application. The next time he accesses the site the user will have the latest version of your application. Update a desktop application [...]]]></description>
			<content:encoded><![CDATA[<h4>Web application = instant update</h4>
<p>One of the most powerful features of a web application is instant update. Your client doesn&#8217;t need to do anything when you fix some bugs in your web application. The next time he accesses the site the user will have the latest version of your application.</p>
<h4>Update a desktop application</h4>
<p>Creating an AIR application means creating a desktop one. It comes with all the benefits of this type of application but also with some of the drawbacks. And one of them is the challenge of updating the application to the most recent version. </p>
<p>Of course this is not a new subject and a lot of applications have their own method of doing updates and upgrades. Adobe AIR has now the <a href="http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework">Update Framework</a>, a Flex library that helps you update any AIR application non intrusively, similar to any web application.</p>
<h4>Adobe AIR Update Framework</h4>
<p>Now, I talked at the beginning about updating a JavaScript AIR application and just above I mentioned that the update framework is a Flex component. That is true and it is very easy to use this component even without any Flex knowledge. To demonstrate this technology I will use the microlink application that I wrote recently.</p>
<p>First, copy the <strong><em>applicationupdater_ui.swf</em></strong> found in the update framework into your project. (You can download the update framework from <a href="http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework">here</a>). Because I am using Flex Builder 3 to develop this application the updater component will be placed under the <strong><em>src</em></strong> folder inside my project. </p>
<p>&#160; <img border="0" alt="update_swf" src="http://www.stratulat.com/blog/wp-content/update-swf.gif" width="259" height="359" /> </p>
<p>Next, create the update descriptor file. This is a small XML file that contains all the information needed by the updater. This includes the version number, the application location on your server and a description where details about the improvements in the new version can be written.</p>
<pre class="csharpcode"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span>=&#8220;<span class="attr">1</span>.<span class="attr">0</span>&#8243; <span class="attr">encoding</span>=&#8220;<span class="attr">utf-8</span>&#8243;?<span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">update</span> <span class="attr">xmlns</span>=&#8220;<span class="attr">http:</span>//<span class="attr">ns</span>.<span class="attr">adobe</span>.<span class="attr">com</span>/<span class="attr">air</span>/<span class="attr">framework</span>/<span class="attr">update</span>/<span class="attr">description</span>/<span class="attr">1</span>.<span class="attr">0</span>&#8243;<span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">version</span><span class="kwrd">&gt;</span>0.3<span class="kwrd">&lt;/</span><span class="html">version</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">url</span><span class="kwrd">&gt;</span>http://localhost:8080/releases/MyAirApp.air<span class="kwrd">&lt;/</span><span class="html">url</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">description</span><span class="kwrd">&gt;&lt;!</span>[CDATA[
Version 0.3 of this application includes the updateing framework.
  ]]<span class="kwrd">&gt;&lt;/</span><span class="html">description</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">update</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>I will name this file <em><strong>update.xml</strong></em> and this will go on the web server. I placed it in the same location as my AIR application so it is reachable from <a href="http://localhost:8080/releases/update.xml">http://localhost:8080/releases/update.xml</a>.</p>
<p>We will want to check for updates each time the application is started. Of course we can also choose to create a menu item or a button to let the user explicitly request a check for updates. In either case, we have to write some JavaScript code to wire things together. JavaScript code in AIR applications can use classes defined in SWF files.</p>
<p>In the HTML file that will use the update framework (in our case index.html) we have to include a script tag that loads the framework. </p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">src</span><span class="kwrd">=&quot;ApplicationUpdater_UI.swf&quot;</span> <span class="attr">type</span><span class="kwrd">=&quot;application/x-shockwave-flash&quot;</span><span class="kwrd">/&gt;</span></pre>
<p>After we include the update framework in our application we have to use it. The instantiation and configuration of this is described inside the comments in the next piece of code, from index.html</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 251px; background-color: #f4f4f4; max-height: 200px">
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">html</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">head</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">meta</span> <span class="attr">http-equiv</span><span class="kwrd">=&quot;Content-Type&quot;</span> <span class="attr">content</span><span class="kwrd">=&quot;text/html; charset=UTF-8&quot;</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">title</span><span class="kwrd">&gt;</span>My first AIR application<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">link</span> <span class="attr">rel</span><span class="kwrd">=&quot;stylesheet&quot;</span> <span class="attr">href</span><span class="kwrd">=&quot;microlink.css&quot;</span> <span class="attr">type</span><span class="kwrd">=&quot;text/css&quot;</span> <span class="kwrd">/&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">type</span><span class="kwrd">=&quot;text/javascript&quot;</span> <span class="attr">src</span><span class="kwrd">=&quot;lib/AIRIntrospector.js&quot;</span><span class="kwrd">&gt;&lt;/</span><span class="html">script</span><span class="kwrd">&gt;</span>
        &lt;script src=<span class="str">&quot;applicationupdater_UI.swf&quot;</span> type=<span class="str">&quot;application/x-shockwave-flash&quot;</span>/&gt;

        &lt;script src=<span class="str">&quot;lib/jquery-1.2.6.js&quot;</span>&gt;&lt;/script&gt;
        &lt;script src=<span class="str">&quot;microlink.js&quot;</span>&gt;&lt;/script&gt;
        &lt;script&gt;
        <span class="rem">// instantiate an updater object</span>
           <span class="kwrd">var</span> appUpdater = <span class="kwrd">new</span> runtime.air.update.ApplicationUpdaterUI();

        <span class="kwrd">function</span> load() {
            <span class="rem">// ApplicationUpdaterUI can be configured via a configuration file </span>
            <span class="rem">// delivered with the application or via JavaScript in the application.</span>
            appUpdater.configurationFile =
                <span class="kwrd">new</span> runtime.flash.filesystem.File(<span class="str">&quot;app:/config/updateConfig.xml&quot;</span>);

            <span class="rem">// setting the event handler for INITIALIZED</span>
            appUpdater.addEventListener(runtime.air.update.events.UpdateEvent.INITIALIZED,
                onUpdate);

            <span class="rem">// It initializes the update framework, silently installing synchronously </span>
            <span class="rem">// any pending updates. It is required to call this method during application</span>
            <span class="rem">// startup because it may restart the application when it is called.</span>
            appUpdater.initialize();
        }

        <span class="kwrd">function</span> onUpdate(<span class="kwrd">event</span>) {
            <span class="rem">//starts the update process</span>
            appUpdater.checkNow();
        }

        <span class="kwrd">&lt;/</span><span class="html">script</span><span class="kwrd">&gt;</span>

    <span class="kwrd">&lt;/</span><span class="html">head</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">body</span> <span class="attr">onload</span><span class="kwrd">=&quot;load()&quot;</span><span class="kwrd">&gt;</span>

    <span class="kwrd">&lt;</span><span class="html">h1</span><span class="kwrd">&gt;</span>this is my first AIR app.<span class="kwrd">&lt;/</span><span class="html">h1</span><span class="kwrd">&gt;</span>

    <span class="kwrd">&lt;</span><span class="html">a</span> <span class="attr">id</span><span class="kwrd">=&quot;microlink_a&quot;</span> <span class="attr">href</span><span class="kwrd">=&quot;http://www.stratulat.com/blog/feed&quot;</span> <span class="attr">class</span><span class="kwrd">=&quot;button&quot;</span>
        <span class="attr">onClick</span><span class="kwrd">=&quot;onClickMicroLink(this); return false;&quot;</span><span class="kwrd">&gt;</span>the microlink<span class="kwrd">&lt;/</span><span class="html">a</span><span class="kwrd">&gt;</span>

    <span class="kwrd">&lt;/</span><span class="html">body</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">html</span><span class="kwrd">&gt;</span></pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>The <strong><em>updateConfig.xml</em></strong> file can set up a lot of parameters for the application updater, most of them related to the behavior of the UI. Only one, however required for the updater to perform well and that is the URL to the update.xml on the server.</p>
<p>I configured updateConfig.xml so that at startup the application first asks if the user wants to check for updates.  If so, because I have set up my application version as being 0.2 and inside the update.xml as 0.3, the application displays the update available UI, which shows all the information I’ve set up in the update.xml file on the server.</p>
<p><a href="http://www.stratulat.com/blog/wp-content/update-ui1.gif"><img border="0" alt="update_ui1" src="http://www.stratulat.com/blog/wp-content/update-ui1-thumb.gif" width="260" height="115" /></a> <a href="http://www.stratulat.com/blog/wp-content/update-ui2.gif"><img border="0" alt="update_ui2" src="http://www.stratulat.com/blog/wp-content/update-ui2-thumb.gif" width="260" height="189" /></a> </p>
<p>In this short demo on how to use the Update Framework I showed all the required steps in order to use it. There is one thing however that was not covered and that is error handling. </p>
<p>I have exported my project from Flex Builder 3 and you can download it from here: <a href="http://www.stratulat.com/blog/wp-content/MyAirApp.zip">MyAirApp.zip</a>.</p>
<h4>Adobe AIR Update Framework &#8211; Flex</h4>
<p>I was inspired in this article by the one written by Mihai Corlan on his blog: <a href="http://corlan.org/2008/06/19/how-to-easily-and-seamlessly-update-an-air-application/">How to easily and seamlessly update an AIR application</a>. The article discusses exactly the same topic but from the Flex perspective. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/update-your-javascript-air-application-with-ease/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JavaScript AIR application &#8211; microlink</title>
		<link>http://www.stratulat.com/blog/javascript-air-application-microlink</link>
		<comments>http://www.stratulat.com/blog/javascript-air-application-microlink#comments</comments>
		<pubDate>Tue, 24 Jun 2008 12:19:55 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/javascript-air-application-microlink</guid>
		<description><![CDATA[I wrote about how Flex Builder 3 can be used to create a JavaScript AIR application, how to set up the environment and how to debug a JavaScript AIR application. It is now time to actually create one that does something more than just displaying &#34;Hello world&#34;. For that, I returned to an article written [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote about how Flex Builder 3 can be used to create a JavaScript AIR application, how to set up the environment and how to debug a JavaScript AIR application. It is now time to actually create one that does something more than just displaying &quot;Hello world&quot;. For that, I returned to an article written by me a about an <a href="http://www.stratulat.com/technical/ajax/a1/?article=AJAX%20-%20microlink%20pattern">Ajax pattern called microlink</a>.</p>
<p>A microlink is a link that opens up content below it. It is a way to improve the ordinary link using Ajax.</p>
<p>In the original article I have used prototype.js and scriptaculous to implement this. Now I am using <a href="http://jquery.com/">jquery </a>because it is AIR-ready. That means it works off the shelf in AIR.</p>
<p><img alt="" src="http://www.stratulat.com/blog/wp-content/microlink_nav.gif" /></p>
<p>If we look into the Flex Navigator view we can see some new resources that are used in order to make the application. Let&#8217;s explain each of them one by one.</p>
<p><i><b>microlink.css</b></i> is the stylesheet and is actually optional so I will not talk about this too much. I have used it in order to make the link more visible.</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span>.button {</pre>
<pre><span class="lnum">   2:  </span>   color: <span class="rem">#003399;</span></pre>
<pre class="alt"><span class="lnum">   3:  </span> }</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">   5:  </span>.button:hover {</pre>
<pre><span class="lnum">   6:  </span>   text-decoration: none;</pre>
<pre class="alt"><span class="lnum">   7:  </span>     color: <span class="rem">#66ffcc;</span></pre>
<pre><span class="lnum">   8:  </span>     background-color: <span class="rem">#003399;</span></pre>
<pre class="alt"><span class="lnum">   9:  </span> }</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  11:  </span>.button:active {</pre>
<pre><span class="lnum">  12:  </span>   color: <span class="rem">#ffffff;</span></pre>
<pre class="alt"><span class="lnum">  13:  </span>   background-color: <span class="rem">#0099cc;</span></pre>
<pre><span class="lnum">  14:  </span> }</pre>
<pre class="alt"><span class="lnum">  15:  </span>&#160;</pre>
<pre><span class="lnum">  16:  </span>.microdiv {</pre>
<pre class="alt"><span class="lnum">  17:  </span>    background-color: <span class="rem">#ccccff;</span></pre>
<pre><span class="lnum">  18:  </span>    border: 1px solid <span class="rem">#9999cc;</span></pre>
<pre class="alt"><span class="lnum">  19:  </span>}</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; background-color: #ffffff; color: #000000;}
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><i><b>microlink.js</b></i> is the actual JavaScript piece of code that makes a regular link into a microlink. It contains just one function to handle the click event.</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="rem">/**</span></pre>
<pre><span class="lnum">   2:  </span><span class="rem"> * Function called when the microlink is called to update </span></pre>
<pre class="alt"><span class="lnum">   3:  </span><span class="rem"> * the div with remote content.</span></pre>
<pre><span class="lnum">   4:  </span><span class="rem"> * </span></pre>
<pre class="alt"><span class="lnum">   5:  </span><span class="rem"> * @param {element} e the element that fired the event.</span></pre>
<pre><span class="lnum">   6:  </span><span class="rem"> */</span></pre>
<pre class="alt"><span class="lnum">   7:  </span><span class="kwrd">function</span> onClickMicroLink(e)  {</pre>
<pre><span class="lnum">   8:  </span>    <span class="kwrd">var</span> elID = e.id;</pre>
<pre class="alt"><span class="lnum">   9:  </span>    <span class="kwrd">var</span> divID = elID.substr(0, elID.length-2); <span class="rem">// remove trailing '_a'</span></pre>
<pre><span class="lnum">  10:  </span>    </pre>
<pre class="alt"><span class="lnum">  11:  </span>    $(<span class="str">'#'</span>+elID).after(<span class="str">' &lt;div id=&quot;'</span>+ divID +<span class="str">'&quot; class=&quot;microdiv&quot; '</span> +</pre>
<pre><span class="lnum">  12:  </span>            <span class="str">'style=&quot;display:none&quot;&gt;&lt;/div&gt;'</span>);</pre>
<pre class="alt"><span class="lnum">  13:  </span>            </pre>
<pre><span class="lnum">  14:  </span>    <span class="rem">// Performs an AJAX request and updates a container's contents </span></pre>
<pre class="alt"><span class="lnum">  15:  </span>    <span class="rem">// based on the response text.</span></pre>
<pre><span class="lnum">  16:  </span>    <span class="rem">// @see http://docs.jquery.com/Ajax</span></pre>
<pre class="alt"><span class="lnum">  17:  </span>    $.ajax({</pre>
<pre><span class="lnum">  18:  </span>        url: e.href,</pre>
<pre class="alt"><span class="lnum">  19:  </span>        dataType: <span class="str">'text'</span>,</pre>
<pre><span class="lnum">  20:  </span>        cache: <span class="kwrd">false</span>,</pre>
<pre class="alt"><span class="lnum">  21:  </span>        success: <span class="kwrd">function</span>(text){</pre>
<pre><span class="lnum">  22:  </span>            $(<span class="str">'#'</span>+divID).append(text);</pre>
<pre class="alt"><span class="lnum">  23:  </span>            $(<span class="str">'#'</span>+divID).fadeIn(<span class="str">&quot;slow&quot;</span>);</pre>
<pre><span class="lnum">  24:  </span>        }</pre>
<pre class="alt"><span class="lnum">  25:  </span>    });</pre>
<pre><span class="lnum">  26:  </span>} </pre>
</div>
<p>Inside the index.html I have added just one more line (aside from including the jquery library):</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">&lt;</span><span class="html">a</span> <span class="attr">id</span><span class="kwrd">=&quot;microlink_a&quot;</span> </pre>
<pre><span class="lnum">   2:  </span>     <span class="attr">href</span><span class="kwrd">=&quot;http://www.stratulat.com/blog/feed&quot;</span> </pre>
<pre class="alt"><span class="lnum">   3:  </span>     <span class="attr">class</span><span class="kwrd">=&quot;button&quot;</span> </pre>
<pre><span class="lnum">   4:  </span>     <span class="attr">onClick</span><span class="kwrd">=&quot;onClickMicroLink(this); return false;&quot;</span><span class="kwrd">&gt;</span>the microlink<span class="kwrd">&lt;/</span><span class="html">a</span><span class="kwrd">&gt;</span></pre>
</div>
<p>Now running the application will show a link. When you click this link an Ajax call will be made to the feeds page of this site. The response is treated as text and it will be injected as the contend of the div created on line 11. Of course, the real use of this is to replace the href of this link with something that is indeed valuable for your application. </p>
<p>This small example covers more than just creating a microlink. It also shows how to make an Ajax call from an AIR application and how to use the response which is done in just the same way as in a browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/javascript-air-application-microlink/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR 1.1 is out!</title>
		<link>http://www.stratulat.com/blog/adobe-air-11-is-out</link>
		<comments>http://www.stratulat.com/blog/adobe-air-11-is-out#comments</comments>
		<pubDate>Tue, 17 Jun 2008 10:43:09 +0000</pubDate>
		<dc:creator>Remus Stratulat</dc:creator>
				<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adobe AIR]]></category>

		<guid isPermaLink="false">http://www.stratulat.com/blog/?p=130</guid>
		<description><![CDATA[Adobe AIR 1.1 is out. you can download it from http://get.adobe.com/air/ With this release, the Adobe AIR runtime has gone global: The runtime has been translated into ten additional languages: Japanese, French, German, Traditional Chinese, Simplified Chinese, Korean, Spanish, Italian, Russian, and Brazilian Portuguese. The Adobe AIR APIs and file formats have been updated to [...]]]></description>
			<content:encoded><![CDATA[<p><img title="Adobe AIR 1.1" src="http://www.stratulat.com/blog/wp-content/air_icon_special.gif" alt="Adobe AIR 1.1" width="100" height="100" /></p>
<p>Adobe AIR 1.1 is out. you can download it from <a title="Adobe AIR 1.1" href="http://get.adobe.com/air/">http://get.adobe.com/air/</a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]></p>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0mm 5.4pt 0mm 5.4pt;
	mso-para-margin:0mm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
</style>
<p><![endif]--></p>
<p class="MsoNormal">With this release, the Adobe AIR runtime has gone global:</p>
<ul>
<li>The runtime has been translated into ten additional languages: Japanese, French, German, Traditional Chinese, Simplified Chinese, Korean, Spanish, Italian, Russian, and Brazilian Portuguese.</li>
<li>The Adobe AIR APIs and file formats have been updated to enable AIR-based applications to be localized</li>
<li>International keyboard input is fully supported</li>
<li>Adobe AIR 1.1 is GB18030 certified</li>
</ul>
<p class="MsoNormal">Additionally, a new certificate migration feature is available which allows developers to migrate their applications between different digital signing certificates.
</p>
<p class="MsoNormal">The Update Framework went live on Labs: <a href="http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework">http://labs.adobe.com/wiki/index.php/Adobe_AIR_Update_Framework</a></p>
<ul>
<li>This framework provides update functionality in AIR apps by using a remote descriptor (an XML file describing the update that sits on your remote server)</li>
<li>This framework is designed to work with both Flex and Ajax based AIR apps</li>
<li>It comes in two flavors
<ul>
<li>As a “headless” library – this just does all the work (checking remote url, downloading update, etc) and dispatches events so developers can hook their own UI</li>
<li>As a “UI” library – this basically does the same thing as the headless lib, but it also includes default dialogs that can be used out of the box in your app. This is the easiest way to use the framework and have all the update functionality out of the box.</li>
</ul>
</li>
<li>The easiest way to start with it is by checking the “simple_ui” sample from the samples package (for both Flex or HTML/JS)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.stratulat.com/blog/adobe-air-11-is-out/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
