<?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>Sean Monahan &#187; Adobe AIR</title>
	<atom:link href="http://seanmonahan.org/tag/adobe-air/feed/" rel="self" type="application/rss+xml" />
	<link>http://seanmonahan.org</link>
	<description></description>
	<lastBuildDate>Wed, 07 Dec 2011 04:20:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Introducing a Tile Strip Utility for Flixel: Stripper</title>
		<link>http://seanmonahan.org/2010/05/27/introducing-a-tile-strip-utility-for-flixel-stripper/</link>
		<comments>http://seanmonahan.org/2010/05/27/introducing-a-tile-strip-utility-for-flixel-stripper/#comments</comments>
		<pubDate>Fri, 28 May 2010 05:47:03 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flixel]]></category>
		<category><![CDATA[Tile Strips]]></category>
		<category><![CDATA[Utilities]]></category>

		<guid isPermaLink="false">http://seanmonahan.org/?p=534</guid>
		<description><![CDATA[Stripper is a simple utility for quickly gathering a bunch of images into a precise tile strip for Flixel-base games. Currently an alpha, you can watch a demo of Stripper here and read more + follow progress here.]]></description>
			<content:encoded><![CDATA[<p>Stripper is a simple utility for quickly gathering a bunch of images into a precise tile strip for Flixel-base games.  Currently an alpha, you can watch a demo of Stripper <a href="http://vimeo.com/12100683" title="Video Demo of Stripper">here</a> and read more + follow progress <a href="/stripper" title="Read more about Stripper">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://seanmonahan.org/2010/05/27/introducing-a-tile-strip-utility-for-flixel-stripper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restoring a Minimized AIR App From the Mac OS Dock</title>
		<link>http://seanmonahan.org/2009/12/02/restoring-a-minimized-air-app-from-the-mac-os-dock/</link>
		<comments>http://seanmonahan.org/2009/12/02/restoring-a-minimized-air-app-from-the-mac-os-dock/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 17:16:38 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Mac OS]]></category>

		<guid isPermaLink="false">http://seanmonahan.org/?p=433</guid>
		<description><![CDATA[Here&#8217;s a link to a post I did over at the BKWLD blog about making AIR apps more seamless on Mac OS.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a <a href="http://bkwld.com/blog/2009/11/restoring-a-minimized-air-app-from-the-mac-os-dock/">link</a> to a post I did over at the BKWLD blog about making AIR apps more seamless on Mac OS.</p>
]]></content:encoded>
			<wfw:commentRss>http://seanmonahan.org/2009/12/02/restoring-a-minimized-air-app-from-the-mac-os-dock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Application Menus in Mac OSX with Adobe AIR</title>
		<link>http://seanmonahan.org/2009/11/15/creating-application-menus-in-mac-osx-with-adobe-air/</link>
		<comments>http://seanmonahan.org/2009/11/15/creating-application-menus-in-mac-osx-with-adobe-air/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 19:46:36 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Application Menu]]></category>
		<category><![CDATA[Mac OS]]></category>

		<guid isPermaLink="false">http://seanmonahan.org/?p=430</guid>
		<description><![CDATA[I recently wrote a post over on the Buk Life blog about creating native menus with Adobe AIR in Mac OS. The emphasis of the article is making the &#8220;application name&#8221; menu (e.g., &#8220;Safari&#8221; for the Safari browser) look like it belongs when creating customized application menus. You can read the full article here: Creating [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wrote a post over on the <a href="http://bkwld.com/blog/">Buk Life</a> blog about creating native menus with Adobe AIR in Mac OS.  The emphasis of the article is making the &#8220;application name&#8221; menu (e.g., &#8220;Safari&#8221; for the Safari browser) look like it belongs when creating customized application menus.</p>
<p>You can read the full article here: <a href="http://bkwld.com/blog/2009/11/creating-application-menus-in-mac-osx-with-adobe-air/">Creating Application Menus in Mac OSX with Adobe AIR</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://seanmonahan.org/2009/11/15/creating-application-menus-in-mac-osx-with-adobe-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beer Near Here Part 5: Creating the Art Assets</title>
		<link>http://seanmonahan.org/2009/04/07/beer-near-here-part-5-creating-the-art-assets/</link>
		<comments>http://seanmonahan.org/2009/04/07/beer-near-here-part-5-creating-the-art-assets/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 01:35:40 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AIR Skinning]]></category>
		<category><![CDATA[Beer Near Here]]></category>
		<category><![CDATA[Custom Chrome]]></category>
		<category><![CDATA[Photo]]></category>

		<guid isPermaLink="false">http://seanmonahan.org/?p=389</guid>
		<description><![CDATA[Previously I discussed the process of implementing a custom chrome in Adobe AIR, with this post I&#8217;ll delve into how I created the assets I used in Beer Near Here Desktop. In particular I&#8217;ll discuss how I acquired all the beer glass images necessary to create the loading animation for Beer Near Here Desktop. What [...]]]></description>
			<content:encoded><![CDATA[<p>Previously I discussed the process of implementing a custom chrome in Adobe AIR, with this post I&#8217;ll delve into how I created the assets I used in Beer Near Here Desktop.  In particular I&#8217;ll discuss how I acquired all the beer glass images necessary to create the loading animation for Beer Near Here Desktop.</p>
<p><span id="more-389"></span></p>
<h3>What You&#8217;ll Need</h3>
<p>To get the beer glass image I used 7 pieces of equipment:</p>
<ol>
<li>A beer</li>
<li>A beer glass</li>
<li>A coaster (this is optional)</li>
<li>Some (cheapie shop) lighting equipment</li>
<li>A large piece of white paper and something to prop it up</li>
<li>A camera</li>
<li>A siphon</li>
</ol>
<h3>Photographing</h3>
<p>The setup was to fill the glass with beer and place it and the coaster on the sheet of paper.  The paper was then propped up (I used a wine bottle), turning it into a backdrop.  The lights were setup so I could get some highlights.  The paper being white is important here because I wanted the glass to be transparent and white lends itself to becoming transparent better than say, black.</p>

<a href="http://seanmonahan.org/wp-content/gallery/beer-near-here-desktop-part-5/half-full.jpg" title="" class="thickbox" rel="singlepic48" >
	<img class="ngg-singlepic" src="http://seanmonahan.org/wp-content/gallery/cache/48__550x_half-full.jpg" alt="half-full.jpg" title="half-full.jpg" />
</a>

<p>Once had the scene setup I placed my camera on a tripod and framed the shot I wanted.  It really helps here to have a camera with a manual focus option and to triple check your focus unless you want to drink a few beers through a siphon.  It wasn&#8217;t very enjoyable.  Additionally, you&#8217;ll want to do this on a stable surface as the goal is to never move the cup at all.</p>
<p>With the stage set I snapped a pic of the full beer glass and then put the siphon in the beer and sucked out a little bit of beer and removed the siphon from the frame.  Rinse and repeat until the glass is empty.  After you have all your images it&#8217;s time to get them into Photoshop.</p>
<h3>Masking</h3>
<p>With your images in Photoshop it&#8217;s time to create some masks so we can knockout the beer glass and coaster.  One of the nice things about this is that, for the shape we are masking (the beer glass), all of these images are essentially the same thanks to the tripod.  So take your time with your masking technique of choice and make a really good mask on one of the images and then copy and paste it into all the other images.  You&#8217;ll end up with something like this:</p>

<a href="http://seanmonahan.org/wp-content/gallery/beer-near-here-desktop-part-5/mask.jpg" title="" class="thickbox" rel="singlepic47" >
	<img class="ngg-singlepic" src="http://seanmonahan.org/wp-content/gallery/cache/47__550x_mask.jpg" alt="mask.jpg" title="mask.jpg" />
</a>

<p>Once I had all my images masked I collected them into a single layered file, one image per frame, and cropped the image down to just the glass.  This is a good point to save your work.</p>
<p>The next thing to do is add some transparency the to progressively more empty images of the glass.  To do this I merged each of my layers with an empty layer.  This has the effect of eliminating the mask used to knockout the glass producing a flat image with transparency where the mask was.  I then created a new layer mask for each layer and used a brush set to about 25% opacity and 25% hardness to slowly paint over the areas where one would expect to be able to see through the beer glass.  I found it helpful to make a screen cap of my desktop and throw it in under all the layers so I could see if the transparency looked good against it.</p>
<p>Creating all these transparencies for the glass is quite time consuming but in the end it creates a very nice effect.  Be sure to save the layered file as a PSD so you can come back to it later if need be.  At this point you have all your assets and now it&#8217;s time to make a decision about how to use them.  In my case one of my goals with Beer Near Here Desktop was to create a completely Flex-based solution.  Specifically, I wanted the animation I created with the beer glass to be done with Flex so I exported all of the layers out as individual 24-bit PNGs (preserving the nice transparency I worked so hard at creating) and imported them into my Flex project.</p>
<p>These PNGs look great but they also now account for the bulk of BNHD&#8217;s file size.  An alternative approach is to import the layered PSD into Flash, create the animation there and then import the resultant SWF into your Flex project.  This will almost certainly result in a smaller size for the app, which is ideal unless you have other goals like I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://seanmonahan.org/2009/04/07/beer-near-here-part-5-creating-the-art-assets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beer Near Here Desktop Part 2: Planning the App</title>
		<link>http://seanmonahan.org/2009/02/24/beer-near-here-desktop-part-2-planning-the-app/</link>
		<comments>http://seanmonahan.org/2009/02/24/beer-near-here-desktop-part-2-planning-the-app/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 06:07:31 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Beer Near Here]]></category>

		<guid isPermaLink="false">http://seanmonahan.org/?p=311</guid>
		<description><![CDATA[As anyone who&#8217;s spent some time writing software knows: planning is paramount.  Mapping out all the features of an app and how they fit together just makes life so much easier.  Since Beer Near Here is a personal project I also factored in my own goals that don&#8217;t necessarily have anything to do with how [...]]]></description>
			<content:encoded><![CDATA[<p>As anyone who&#8217;s spent some time writing software knows: planning is paramount.  Mapping out all the features of an app and how they fit together just makes life so much easier.  Since Beer Near Here is a personal project I also factored in my own goals that don&#8217;t necessarily have anything to do with how the app functions into the planning stage.</p>
<p><span id="more-311"></span></p>
<p>Beer Near Here Desktop (BNHD) is a very simple app.  All it needs to do is take a location as input and display the results.  As such my feature list is very short:</p>
<ul>
<li>Search for beer near a given location</li>
<li>Display results</li>
<li>Display app info</li>
</ul>
<p>This list makes up the core of what BNHD does; nothing more, nothing less.  I told you it was simple.</p>
<p>Additionally I plan to add:</p>
<ul>
<li>Printing</li>
<li>Maps</li>
<li>Directions</li>
</ul>
<p>These three features will add some serious utility to BNHD and take the app from being a neat little experiment to a truly useful desktop tool.  These three features are also the most labor-instense and add little toward my personal goals for developing the app so they&#8217;re getting put off til a later date.</p>
<p>The real purpose of BNHD is give AIR a spin.  Specifically, I wanted to see how dynamic I could make an AIR application using only Flex &#8212; no Flash for animations or anything like that.  I already know I can use Flash to handle animations quite nicely and I&#8217;m interested in seeing Flex &#8230; errr &#8230; flex (sorry) it&#8217;s muscle.</p>
<p>So I hinted at animation being one of my &#8220;personal&#8221; features, to clarify I wanted to have a loading animation that centered around beer.  I also wanted to have a custom skin that really said, &#8220;beer&#8221;.  These two things definitely needed to come together and, if you&#8217;ve used the app you know how.</p>
<p>I also wanted to steal an effect from Apple&#8217;s dashboard widgets.  Most dashboard widgets have an info button that flips the widget over like a card to display settings or other information about the widget.  BNHD is really more of a widget than a full-fledged application so I think this effect fits nicely.  Also it&#8217;s just cool and a bit of a challenge.</p>
<p>This gives me a list of &#8220;personal&#8221; features that looks something like this:</p>
<ul>
<li>Custom skin</li>
<li>Loading animation tied into the custom skin</li>
<li>Flip effect to display app info</li>
</ul>
<p>I now have my list of features for BNHD, but there is still one more thing to consider.  One of the features for BNHD is &#8220;Search for beer near a given location&#8221; which cannot be handled entirely within the app.  The reason this cannot be handled locally is because the database BNHD searches is stored on a remote web server so as part of the search I&#8217;ll be making a request to a web server which means that, as part of the search feature, I&#8217;ll need to consider how this request will be made and handled.</p>
<p>The web server in question is running Drupal so the quick and easy answer is to write a module that handles remote search requests.  I took this a step further by setting up a sub domain of beernearhere.net that exclusively handles remote requests.  Doing this allows me to segregate and better track the traffic on beernearhere.net.  Having a remote client also increases the likelihood of some kind of hack or exploit since I&#8217;m relinquishing some control by creating a remote client that is installed on a user&#8217;s machine so this allows me to quickly shut off all remote requests if something bad happens.</p>
<p>So my revised list of features to implement for a version 1.0 release are:</p>
<ul>
<li>Create a custom skin for the app</li>
<li>Search for beer near a given location by making a request to a remote server</li>
<li>Display a loading animation that integrates with the custom skin while waiting for the response to the search request</li>
<li>Display app info using a flip effect</li>
</ul>
<p>Pretty straightforward stuff.  Next time we&#8217;ll start by setting up our project and creating the custom skin.</p>
<p><a title="Part 3 of the series." href="/2009/03/03/beer-near-here-desktop-part-3-setting-up-the-project-in-flex-builder/">Read Part 3</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://seanmonahan.org/2009/02/24/beer-near-here-desktop-part-2-planning-the-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beer Near Here Desktop</title>
		<link>http://seanmonahan.org/2009/02/23/beer-near-here-desktop/</link>
		<comments>http://seanmonahan.org/2009/02/23/beer-near-here-desktop/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 00:57:26 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Beer Near Here]]></category>

		<guid isPermaLink="false">http://seanmonahan.org/?p=305</guid>
		<description><![CDATA[One of the coolest aspects of Beer Near Here, in my humble opinion, is the desktop version.  Beer Near Here is primarily a website about information, specifically, displaying information in a legible manner.  That sort of site doesn&#8217;t mesh well with a cool, out-there design or lots of Flash or Javascript effects, which is why [...]]]></description>
			<content:encoded><![CDATA[<p>One of the coolest aspects of <a title="Visit Beer Near Here" href="http://beernearhere.net">Beer Near Here</a>, in my humble opinion, is the <a title="Beer Near Here Desktop" href="http://beernearhere.net/desktop">desktop version</a>.  Beer Near Here is primarily a website about information, specifically, displaying information in a legible manner.  That sort of site doesn&#8217;t mesh well with a cool, out-there design or lots of Flash or Javascript effects, which is why developing BNH Desktop was so refreshing.  Yes, the app is still primarily about displaying information to the user but in targeting AIR I&#8217;m free to embrace all the cool animations and effects offered by that platform.</p>
<p><span id="more-305"></span></p>
<p>I could do much of what BNH Desktop does on the web, but I&#8217;d have to rely on users having Flash and for the users that don&#8217;t, well, I have to handle them as well, usually by gracefully degrading the experience.  All of this is a lot of work and testing and, again, in my humble opinion, not usually worth it.  From a design standpoint I think a website should be embraced for what it is and not shoehorned into some Flash app that just happens to run in a web browser.</p>
<p>I&#8217;ll now step down off my soapbox and get back to the point of this post: Beer Near Here Desktop is a cool example of an AIR application and I want to cut it open and share all it&#8217;s secrets.  When I decided to write this app the first thing I did was check out what else is out there for AIR and something that kept showing up was Kuler for AIR.</p>
<p><a title="Visit kuler.adobe.com" href="http://kuler.adobe.com">Kuler</a>, is an Adobe application for creating color swatches and, from everything I read, the AIR version is something that was written to show off some of the cool things you can do with AIR.  And sure enough it does show these things off.  It has custom skin and some neat effects.  The trouble is that there is no explanation of how to accomplish any of this.  It&#8217;s almost a tease, &#8220;See, you can do all this cool stuff&#8230;but we&#8217;re not going to tell you how.&#8221;</p>
<p>Undeterred, I went on to do some more Googling and reading with the end result being Beer Near Here Desktop.  You should <a title="Get Beer Near Here Desktop" href="http://beernearhere.net/desktop">check it out</a>.  FYI, I&#8217;m not paying $300 to sign my code with Verisign so you&#8217;ll have to just trust me on the install.</p>
<p>Some of the neat features of BNH Desktop include:</p>
<ul>
<li>A custom skin.  In Flex/AIR parlance this is &#8220;custom chrome&#8221;.</li>
<li>A loading/waiting animation that integrates with the skin.</li>
<li>A flip effect.</li>
<li>Custom roll-over buttons.</li>
</ul>
<p>So now you know you can do these things and I aim to explain them as well.  But for that you&#8217;ll have to stay tuned until next time as I want to give each feature it&#8217;s due.</p>
<p><a href="/2009/02/24/beer-near-here-desktop-part-2-planning-the-app/">Read Part 2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://seanmonahan.org/2009/02/23/beer-near-here-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

