<?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>Cozmoslabs &#187; javascript</title>
	<atom:link href="http://www.cozmoslabs.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cozmoslabs.com</link>
	<description>Web design and development experiment.</description>
	<lastBuildDate>Fri, 03 Feb 2012 16:05:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Detect if javascript is enabled in php and remove the TypeKit flicker</title>
		<link>http://www.cozmoslabs.com/1202-detect-if-javascript-is-enabled-php-remove-the-typekit-flicker/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=detect-if-javascript-is-enabled-php-remove-the-typekit-flicker</link>
		<comments>http://www.cozmoslabs.com/1202-detect-if-javascript-is-enabled-php-remove-the-typekit-flicker/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 12:40:11 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[flicker]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[typekit]]></category>

		<guid isPermaLink="false">http://www.cozmoslabs.com/?p=1202</guid>
		<description><![CDATA[Experimenting with TypeKit I found the flicker really annoying. It dose feature loading events that add .wf-loading, .wf-active and .wf-inactive classes to the HTML tag but there still is at least a one second delay before they get appended so you still see the page with the flicker if you want to hide the content [...]
Related posts:<ol>
<li><a href='http://www.cozmoslabs.com/129-adobe-air-resources-for-html-and-javascript-developers/' rel='bookmark' title='Adobe Air resources for HTML and JavaScript developers'>Adobe Air resources for HTML and JavaScript developers</a></li>
<li><a href='http://www.cozmoslabs.com/983-remove-google-buzz-from-gmail/' rel='bookmark' title='Remove Google Buzz from Gmail'>Remove Google Buzz from Gmail</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.cozmoslabs.com/wp-content/uploads/2010/09/js_required.png" alt="" title="js_required" width="300" height="110" class="alignright size-full wp-image-1205" /></p>
<p><strong>Experimenting with TypeKit I found the flicker really annoying. </strong></p>
<p>It dose feature <a href="http://gist.github.com/401726">loading events</a> that add <em>.wf-loading</em>, <em>.wf-active</em> and <em>.wf-inactive</em> classes to the HTML tag but there still is at least a one second delay before they get appended so you still see the page with the flicker if you want to hide the content based on these classes.</p>
<p><span id="more-1202"></span></p>
<h3>The solution</h3>
<p>First of I hidden the Typekit content with css directly from <em>style.css</em> and show a loading icon on the <em>body</em>.</p>

<div class="wp_codebox"><table><tr id="p12024"><td class="code" id="p1202code4"><pre class="css" style="font-family:monospace;">body<span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">images/ajax-loader.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #933;">50%</span> <span style="color: #933;">380px</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#wrapper</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">visibility</span><span style="color: #00AA00;">:</span><span style="color: #993333;">hidden</span> <span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Next Step was to include the TypeKit scripts in the header:</p>

<div class="wp_codebox"><table><tr id="p12025"><td class="code" id="p1202code5"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://use.typekit.com/this_is_your_TypeKit_url.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #000066; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>Typekit.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
active<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>backgroundImage<span style="color: #339933;">:</span> <span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#wrapper&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>visibility<span style="color: #339933;">:</span> <span style="color: #3366CC;">'visible'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
inactive<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>backgroundImage<span style="color: #339933;">:</span> <span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#wrapper&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>visibility<span style="color: #339933;">:</span> <span style="color: #3366CC;">'visible'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>So now we&#8217;re showing the content after TypeKit finished loading or failed to load with javascript, thus the <strong>TypeKit flickr</strong> is no more. </p>
<p>The problem is when the user doesn&#8217;t have javascript activated nothing is shown. While most of the times users without js represent less then 1% is still bad practice to ignore them completely. The solution is a bit of javascript and php to resolve this issue.</p>

<div class="wp_codebox"><table><tr id="p12026"><td class="code" id="p1202code6"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> js_detection<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #990000;">isset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'jstest'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nojs'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$nojs</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// create a hidden form and submit it with javascript</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;form name=&quot;jsform&quot; id=&quot;jsform&quot; method=&quot;post&quot; style=&quot;display:none&quot;&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;input name=&quot;jstest&quot; type=&quot;text&quot; value=&quot;true&quot; /&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;script language=&quot;javascript&quot;&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'document.jsform.submit();'</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/script&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/form&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// the variable below would be set only if the form wasn't submitted, hence JS is disabled</span>
  <span style="color: #000088;">$nojs</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nojs'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$nojs</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;style type=&quot;text/css&quot;&gt;body{background:none !important;}  #wrapper{visibility:visible !important;} &lt;/style&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nojs'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// end js_detect()</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// and in your php app stat the php session before any content is generated or you'll get the Headers Sent issue</span>
<a href="http://www.php.net/session_start"><span style="color: #990000;">session_start</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>We&#8217;re using a form that&#8217;s submitted with javascript. If <em>jstest</em> POST variable is set we initialize our <em>$_SESSION['nojs']</em> session variable that tells us that the user doesn&#8217;t or dose have javascript activated. This way we don&#8217;t have to submit the form only the first time the user visits the site. </p>
<h3>Conclusions</h3>
<p>It&#8217;s up to the developer to chose between removing the TykeKit flicker and reloading the page from time to time to check if the user has javascript enabled. Also we could be using a cookie instead of the php session and set an expiration date of one day (the session expires after 24 minutes by default) so the user will only get that form submission once a day. </p>
<p>Also there&#8217;s the possibility the user disables javascript within those 24 minutes, in which case he won&#8217;t see the site. I think this is an unrealistic case and chances are this will never happen in real life. Also since some people start treating <a href="http://mondaybynoon.com/2010/06/21/is-it-now-acceptable-to-require-javascript/">javascript as a requirement</a> I wouldn&#8217;t worry to much about this.</p>
<p>Related posts:<ol>
<li><a href='http://www.cozmoslabs.com/129-adobe-air-resources-for-html-and-javascript-developers/' rel='bookmark' title='Adobe Air resources for HTML and JavaScript developers'>Adobe Air resources for HTML and JavaScript developers</a></li>
<li><a href='http://www.cozmoslabs.com/983-remove-google-buzz-from-gmail/' rel='bookmark' title='Remove Google Buzz from Gmail'>Remove Google Buzz from Gmail</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.cozmoslabs.com/1202-detect-if-javascript-is-enabled-php-remove-the-typekit-flicker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe Air resources for HTML and JavaScript developers</title>
		<link>http://www.cozmoslabs.com/129-adobe-air-resources-for-html-and-javascript-developers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adobe-air-resources-for-html-and-javascript-developers</link>
		<comments>http://www.cozmoslabs.com/129-adobe-air-resources-for-html-and-javascript-developers/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 12:00:54 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.cozmoslabs.com/?p=129</guid>
		<description><![CDATA[I&#8217;ve just finished my first adobe air project. It was a simple Daily Incomes-Expenses desktop application with monthly reports (simple enough to build in a few hours using PHP and MySql). It took me however something like 12 hours of work mostly because of lack of documentation, certain JavaScript functions are banned in Adobe Air [...]
Related posts:<ol>
<li><a href='http://www.cozmoslabs.com/1202-detect-if-javascript-is-enabled-php-remove-the-typekit-flicker/' rel='bookmark' title='Detect if javascript is enabled in php and remove the TypeKit flicker'>Detect if javascript is enabled in php and remove the TypeKit flicker</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div class="postimage"><img class="alignnone size-full wp-image-138" title="air_logo" src="http://www.cozmoslabs.com/wp-content/uploads/2008/10/air_logo.jpg" alt="" width="300" height="300" /></div>
<p>I&#8217;ve just finished my first <strong>adobe air</strong> project. It was a simple Daily Incomes-Expenses desktop application with monthly reports (simple enough to build in a few hours using PHP and MySql). It took me however something like 12 hours of work mostly because of lack of documentation, certain JavaScript functions are banned in Adobe Air because of security concerns ( functions like eval() that are used in JavaScript Frameworks ) and bugs in <a href="http://aptana.com/">Aptana IDE</a> and it&#8217;s Adobe Air plugin.</p>
<p>To sum it all up I&#8217;ve put together a list of resources that might help you shave a few hours on you ADOBE AIR project if you are developing it using HTML and JavaScript.</p>
<p><span id="more-129"></span></p>
<h2>Tutorials &amp; How To&#8217;s</h2>
<h3 id="title"><a href="http://www.sitepoint.com/article/learn-adobe-air-part-1/">Site Point &#8211; Learn Adobe AIR, Part I: Build A Note Storage App</a></h3>
<p>This is a step-by-step well written tutorial that will guide you from installing your Aptana IDE and Plugin for Adobe Air, to developing your Sqlite local database application to deploying and packing it as a .air file.</p>
<h3 id="title"><a href="http://www.sitepoint.com/article/learn-adobe-air-part-2/">Site Point &#8211; Learn Adobe AIR, Part II: Build a  Customer Management App</a></h3>
<p>This one builds on top of what you&#8217;ve learned in part 1 and guides you throught building a more complex AIR application.  You will learn how to explore the user interface possibilities that AIR provides, implement drag-and-drop functionality, work with native windows, communicate between windows, construct menus, and more.</p>
<h3><a href="http://www.adobe.com/devnet/air/ajax/">Adobe AIR Developer Center for HTML and Ajax</a></h3>
<p>Adobe Air&#8217;s official page for resources related to developing application using HTML and Javascript. There are many good tutorials, articles and tips here to keep you busy for a wile. It also has a <strong>Get started with Adobe AIR</strong> section that I wished I found before I started work on my application <img src='http://www.cozmoslabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3 id="post-3566"><a title="Permanent Link to Adobe AIR for JavaScript Developers Pocketguide" rel="bookmark" href="http://ajaxian.com/archives/adobe-air-for-javascript-developers-pocketguide">Adobe AIR for JavaScript Developers Pocketguide &#8211; Free Book<br />
</a></h3>
<p>Adobe AIR for JavaScript developers provides an introduction to Adobe AIR for developers using interested in building AIR applications using JavaScript, HTML and CSS.</p>
<p>The book has several pieces:</p>
<ul>
<li>Introduction to Adobe AIR</li>
<li>Getting started with Adobe AIR</li>
<li>Working with JavaScript and HTML Within Adobe AIR</li>
<li>Adobe AIR Mini-Cookbook</li>
</ul>
<p>It is written by members of the AIR team itself, so you know that the information will be correct.</p>
<h3><a href="http://www.adobe.com/support/documentation/en/air/#html-ajax">Adobe AIR resources For HTML and Ajax</a></h3>
<p>Here you get to see some of the most important or popular aspects of specific Adobe AIR features, step-by-step instructions for creating Adobe AIR applications using HTML and Ajax and Language Reference for HTML Developers. This is and official Adobe page so the information here should be kept up to date.</p>
<h3><a href="http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&amp;productId=4&amp;postId=10483">Include existing SQLite database in an AIR application </a></h3>
<p>I had a small problem with the database for my adobe air application and this page helped me find the cause. Again it&#8217;s an official Adobe page so it can be used as reference for developing solid applications.</p>
<h3><a href="http://help.adobe.com/en_US/AIR/1.1/devappshtml/WSC04AFC0E-5BF5-4c2f-8A32-BEDE16E9DF95.html">Developing Adobe AIR 1.1 Applications with HTML and Ajax </a></h3>
<p>You could say this is the help file for Adobe Air, but it&#8217;s more like a complete online reference for the SDK and framework. You can probably find all the information you need here if you want to invest the time and effort needed into it .</p>
<h2>Application Lists and Reviews &#8211; If you need to know what others have built with Adobe Air</h2>
<h3 id="line13"><a href="http://refreshingapps.com/">RefreshingApps.com &#8211; Showcase for Adobe AIR Applications and Resources</a></h3>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-131" title="refreshing_apps" src="http://www.cozmoslabs.com/wp-content/uploads/2008/10/refreshing_apps.jpg" alt="" width="500" height="149" /></p>
<p>&#8220;The premier showcase, resource website for Adobe AIR applications. Find the best Adobe AIR apps, get the best knowledge here&#8221;&#8230; or so they say! The bottom line is that this is a directory for Adobe Air application, it has reviews, previews, news from Adobe Air world, interviews with developers and A LOT of resources for developers from tutorials to icons for your applications.</p>
<h3><a href="http://www.webresourcesdepot.com/27-adobe-air-applications-handy-for-web-designers/">27 Adobe AIR Applications &#8211; Handy For Web Designers</a></h3>
<p><img class="aligncenter size-full wp-image-132" title="27_air_apps" src="http://www.cozmoslabs.com/wp-content/uploads/2008/10/27_air_apps.jpg" alt="" width="500" height="149" /></p>
<p>That&#8217;s right&#8230; 27&#8230; I doubt anyone would use all 27 of them (I personally tryed <a href="http://www.aboutnico.be/" target="_blank">Google Analytics Reporting Suite</a> ) but you might find something useful.</p>
<h3><a href="http://www.adobe.com/products/air/showcase/">Adobe AIR Showcase applications</a></h3>
<p><a href="http://www.cozmoslabs.com/wp-content/uploads/2008/10/showcase_air_apps.jpg"><img class="aligncenter size-full wp-image-135" title="showcase_air_apps" src="http://www.cozmoslabs.com/wp-content/uploads/2008/10/showcase_air_apps.jpg" alt="" width="500" height="149" /></a></p>
<p>Best of the best&#8230; This is the official Adobe Air Showcase. You can find applications from big names like AOL, NASDAQ, eBay, Yahoo!, The New York Times and the list goes on and on&#8230; These are Air Applications that probably are used by thousands of people around the world!</p>
<h3><a href="http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&amp;exc=24">Adobe AIR Marketplace</a></h3>
<p><img class="aligncenter size-full wp-image-136" title="air_marketplace" src="http://www.cozmoslabs.com/wp-content/uploads/2008/10/air_marketplace.jpg" alt="" width="500" height="149" /></p>
<p>Adobe has created an official <a rel="nofollow" href="http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&amp;exc=24">Adobe AIR Marketplace (beta)</a> which aims to enlist all of the Adobe AIR applications and widgets. This is a great place to search for inspiration or something that you would actually use!</p>
<h2>Editors for Adobe Air to use with HTML and JavaScript</h2>
<h3><a href="http://www.aptana.com/air">Aptana Studio + Adobe AIR</a></h3>
<p><em>&#8220;We are delighted with Aptana Studio&#8217;s support for Adobe AIR. Ajax developers using Aptana Studio 1.1 and Adobe AIR can now build advanced rich Internet applications that deploy on the desktop and run consistently across operating systems. In addition, Ajax developers will save time building applications on Adobe AIR with Aptana&#8217;s many productivity features including the AIR application export wizard and advanced Ajax code hinting. Aptana is making it easy to build Ajax-based applications for Adobe AIR.&#8221;</em> <strong>-Rob Christensen, Senior Product Manager of Adobe AIR</strong></p>
<h3><a href="http://www.adobe.com/products/air/tools/ajax/">Tools for AIR and Ajax &#8211; Adobe Dreamweaver CS3</a></h3>
<p>The Adobe AIR extension for Dreamweaver will allow you to package and preview AIR application files directly within Adobe Dreamweaver CS3, so you can leverage your existing web development skills to build rich Internet applications on the desktop.</p>
<h3>Javascript Libarys</h3>
<p>You can use pretty much any javascript library, be it <a href="http://jquery.com/">jQuery</a>, <a href="http://www.prototypejs.org/">Prototype</a>, <a href="http://mootools.net/">MooTools</a> as long as you take into consideration <a href="http://help.adobe.com/en_US/AIR/1.1/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7f0e.html">security-related JavaScript errors</a> that could apear if you aren&#8217;t careful. I personally used jQuery because there are a <a href="http://plugins.jquery.com/">lot of plugins</a> for it. Also because of thouse security-related JavaScript errors parts of <a href="http://ui.jquery.com/">jQuery UI</a> don&#8217;t work (the calendar part for example makes use of <em>eval()</em> function and that is not allowed in AIR).</p>
<p>Another alternative is the <a href="http://labs.adobe.com/technologies/spry/">Spry framework for Ajax</a> that comes with Dreamweaver CS3. The Spry prerelease was updated to support the shipping version of Adobe AIR.</p>
<p>This is what I thought relevant related to <strong>Adobe Air</strong> for Javascript developers. The web is a big place so if you are really serious about developing Air Applications don&#8217;t limit yourself to this list.</p>
<p><em>Don&#8217;t forget to have fun while developing your Air App! </em></p>
<p>Related posts:<ol>
<li><a href='http://www.cozmoslabs.com/1202-detect-if-javascript-is-enabled-php-remove-the-typekit-flicker/' rel='bookmark' title='Detect if javascript is enabled in php and remove the TypeKit flicker'>Detect if javascript is enabled in php and remove the TypeKit flicker</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.cozmoslabs.com/129-adobe-air-resources-for-html-and-javascript-developers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

