<?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/"
	xmlns:georss="http://www.georss.org/georss" >

<channel>
	<title>The Stairwell &#187; Usability</title>
	<atom:link href="http://stairwellblog.com/category/usability/feed/" rel="self" type="application/rss+xml" />
	<link>http://stairwellblog.com</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 06:01:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>A methodical look at Hotel booking engines</title>
		<link>http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/</link>
		<comments>http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 18:15:48 +0000</pubDate>
		<dc:creator>tyler</dc:creator>
				<category><![CDATA[Findings]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Experience]]></category>
		<category><![CDATA[Hilton]]></category>
		<category><![CDATA[Hotel]]></category>
		<category><![CDATA[Hyatt]]></category>
		<category><![CDATA[Intercontinental]]></category>
		<category><![CDATA[Keylime Interactive]]></category>
		<category><![CDATA[Marriot]]></category>
		<category><![CDATA[Starwood]]></category>
		<category><![CDATA[Study]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[Userzoom]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=2477</guid>
		<description><![CDATA[5 major brand hotels sites evaluated by users in a formal study. See the results.]]></description>
			<content:encoded><![CDATA[<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">Recently, I viewed an <a href="http://www.userzoom.com/blog">insightful webinar</a> which benchmarked 5 major brand hotel websites by giving 250 users 2 tasks and evaluating the results. It should be mentioned that the agenda for the webinar was not just purely for purposes of academic enlightenment. The two companies responsible for conducting the broadcast probably hoped to get some lift by the exposure and there was some detailed explanation about their services/capabilities throughout the course of the presentation. So, I&#8217;ll give them a quick shout out here as well.</p>
<ol style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<li><a href="http://www.userzoom.com/">Userzoom</a> (Sunnyvale, CA) provided the technology. They offer UX pros the ability to run online, task-based studies with geographically dispersed participants.</li>
<li> <a href="http://keylimeinteractive.com/">KeyLime Interactive</a> (Miami, FL) moderated the sessions. They specialize in online web-based usability testing as well as traditional lab-based testing.</li>
</ol>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">A little background about the study before diving into the results. Each Hotel site tested (Hilton, Marriot, Intercontinental, Starwood, Hyatt) were randomly assigned 50 different users to perform 2 tasks seperatly. Tasks took roughly 10 min in length to complete. Users were selected regardless of their prior affiliation with any hotel rewards program or familiarity with the site.</p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><strong>Tasks</strong>:</p>
<ol style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<li>Finding a room on a beach at a particular time of year, particular distance from a landmark, within a set budget of $250.</li>
<li> Finding a hotel that provided parking to it&#8217;s guests</li>
</ol>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><a rel="attachment wp-att-2480" href="http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/picture-1-09-14-22/"><img class="alignleft size-full wp-image-2480" src="http://stairwellblog.com/wp-content/uploads/2010/06/Picture-1-09-14-22.png" alt="" width="537" height="400" /></a></p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">The web sites were evaluated on several metrics based on the tasks which users attempted to cary out (Overall success, Ease of use, Ease of Navigation, Clear where to start, Satisfaction with Time) and then are given an overall score (KLI score) by the moderating agency (Keylime interactive)</p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><strong>Data gathered from open questioning and Task 1 Results overview: </strong></p>
<ul style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<li>Marriot, Hilton had largest groups of rewards program participants &#8211; and considered &#8216;most popular&#8217; by users as well</li>
<li>Hilton ranks best from a search perspective</li>
<li>Hyatt ranks worst from a search perspective</li>
<li>Marriot and Hilton brands scored well on ease of use and accessibility</li>
<li>Hilton &amp; Marriot score highest on success rate, Ease of Use, and Satisfaction. Hyatt scored lowest</li>
<li>User satisfaction related directly to the time it takes to complete tasks</li>
</ul>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><a rel="attachment wp-att-2485" href="http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/picture-2-09-14-22/"><img class="alignleft size-full wp-image-2485" src="http://stairwellblog.com/wp-content/uploads/2010/06/Picture-2-09-14-22.png" alt="" width="535" height="400" /></a></p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><strong>Data gathered from open questioning and Task 2 Results overview:</strong></p>
<ul style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<li>Marriot scored highest on search, but most users had a hard time figuring out where to start clicking</li>
<li>Hyatt &amp; Starwood rank consistently low in all categories of evaluation within the task result</li>
</ul>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><a rel="attachment wp-att-2492" href="http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/picture-3-09-14-22/"><img class="alignleft size-full wp-image-2492" src="http://stairwellblog.com/wp-content/uploads/2010/06/Picture-3-09-14-22.png" alt="" width="536" height="400" /></a></p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><strong>The KLI results from the 2 tasks were the aggregated for an overall KLI score </strong></p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><a rel="attachment wp-att-2495" href="http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/picture-5-09-14-22/"><img class="alignleft size-full wp-image-2495" src="http://stairwellblog.com/wp-content/uploads/2010/06/Picture-5-09-14-22.png" alt="" width="632" height="400" /></a></p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 10px"><strong>Executive takeaways</strong></p>
<ul style="font-family: Arial,Helvetica,sans-serif;font-size: 10px">
<li>All brands had varying strengths and weaknesses</li>
<li> All brands have room for improvement</li>
<li>All brands had a &#8216;negative&#8217; score of with regards to the brand meeting end-users expectations (Hilton however was the &#8216;best&#8217;)</li>
<li>No single brand or site should be picked on as being &#8216;bad&#8217; in strict black and white terms. These results were simply the outcome of 2 tasks performed online. But it starts to paint a picture of the overall User Experience the various brands provide</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2010/06/a-methodical-look-at-hotel-booking-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I&#8217;ve learned: Time for the ad industry to catch up.</title>
		<link>http://stairwellblog.com/2010/03/what-ive-learned-time-for-the-auto-i-mean-ad-industry-needs-to-catch-up/</link>
		<comments>http://stairwellblog.com/2010/03/what-ive-learned-time-for-the-auto-i-mean-ad-industry-needs-to-catch-up/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 17:36:12 +0000</pubDate>
		<dc:creator>Ryan Nasipak</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Ads]]></category>
		<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[Point Roll]]></category>
		<category><![CDATA[Rich Media]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=2218</guid>
		<description><![CDATA[<p>Ok, everyone take a deep breath. I&#8217;m not going to go on an endless rant on why I think more companies need to modernize their approach to rich media ads&#8230;&#8230;or am I? (cue evil laugh) Ahhhh-ha-ha-ha-ha. </p>
<p>What I will say is that a little more progressive thinking would help cut out a lot of the senseless number of versions required for some companies running rich media ads and also (potentially) increase your margin for success. So how did I come to this conclusion? Through recent conversation with some ad partners and also jumping through a technical hurdle or two.</p>
<p>We recently&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Ok, everyone take a deep breath. I&#8217;m not going to go on an endless rant on why I think more companies need to modernize their approach to rich media ads&#8230;&#8230;or am I? (cue evil laugh) Ahhhh-ha-ha-ha-ha. </p>
<p>What I will say is that a little more progressive thinking would help cut out a lot of the senseless number of versions required for some companies running rich media ads and also (potentially) increase your margin for success. So how did I come to this conclusion? Through recent conversation with some ad partners and also jumping through a technical hurdle or two.</p>
<p>We recently completed an XML fed rich media ad for a client. The ad featured a small content management system that allowed the client to update that XML feed and thus create a new ad &#8220;on the fly&#8221; for as long as they were running their ad unit. </p>
<p>So, why does this matter? It obviously doesn&#8217;t seem like a radical concept (or I would hope not <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). It&#8217;s a process almost all designers have used when building a website. Make something the client can not only use but also maintain. Why? Because it ads value to both the client and the agency.  </p>
<p><strong>1.) It cuts down on versioning.<br />
2.) It gives content control to the client.<br />
3.) It removes back and forth (you know, the 45 email chains).<br />
4.) It ads flexibility to their ad campaign.<br />
5.) It ads longevity to the ad.<br />
6.) It softens mistakes. </strong></p>
<p>If you&#8217;re asking how? You&#8217;re in luck (descriptions below). </p>
<p><strong>1.) It cuts down on versioning -</strong> If you&#8217;ve ever created a rich media ad, you&#8217;ll soon begin to notice that there sometimes are 26 versions of an ad that accomplish the same goal. You&#8217;ll probably sit in photoshop or flash at some point and say (or possibly scream) &#8220;why am I doing this!?&#8221; and with good reason. A dynamic solution allows a designer to create one universal flash ad that updates in real time and then leaves 1 simple static ad (in the event flash cannot be delivered) for each iteration. Instead of doing 26 ads, maybe you can cut it down to 13. In terms of efficiency, that&#8217;s obviously huge.</p>
<p><strong>2.) It gives content control to the client -</strong> Making the client an active participant helps ads value to what you do. It also ads ownership and accountability to what is ultimately their product. More often than not, that leads to a richer experience all around (which is never a bad thing).  </p>
<p><strong>3.) It removes back and forth (you know, the 45 email chains) -</strong> I don&#8217;t think I&#8217;ll explain this one. Why ruin the fun for someone who has yet to experience one of life&#8217;s miracles. /sarcasm</p>
<p><strong>4.) It ads flexibility to their ad campaign -</strong> So what happens if you&#8217;re 5 weeks in to a 10 week ad campaign and you realize what (or the way in which) you&#8217;re advertising could be improved. Different wording, a larger percent off, an &#8220;hourly discount&#8221;, etc. etc. etc. Or what if you sold something that absolutely flew off the shelves and you like to replace another so-so sale, later in the campaign, with that same discount? </p>
<p>How is that going to happen if you have 50 versions of an add that all need updated by a designer, reloaded in to an ad portal and then relaunched individually? The answer is, it&#8217;s not.  </p>
<p>How about if you have an XML feed that populates those ad units instead? and all their ad sizes (728&#215;90, 300&#215;250, etc., etc., etc.). Update a single text file, hit submit and all your ads just changed in real time. No contacting the agency or the ad portal. Simply update your CMS and hit enter. So why isn&#8217;t this design strategy happening more? Maybe it makes too much sense? <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p><strong>5.) It ads longevity to the ad -</strong> An ad that updates via an XML document (and not a designer) is not only cheaper over time but it also stands to last infinitely longer than a static ad. Did your campaign change? Are you selling a different product? No problem.  Just update the CMS, relaunch the ad and you have now been able to recycle something that typically would have been thrown away. There&#8217;s value in that for everyone involved (a superior product, happy customers and ultimately more business). </p>
<p><strong>6.) It softens mistakes -</strong> So you spelled a word wrong? (unfortunately been there and done that). What next? Well, it obviously needs changed (my head is starting to hurt thinking about this) and ASAP. In a dynamic ad, 90+% of people are seeing the flash unit. Having the ability to immediately wipe out that mistake for nearly every user in about 60 seconds is HUGE. Log in to the CMS, update the XML and the spelling error is removed. You&#8217;ll obviously have to make changes to the single accompanying static ad (if the same error was made) but you&#8217;ll SIGNIFICANTLY reduce the pain of a small correction.  </p>
<p>So my question is, why are people NOT making more ads that are dynamic, flexible and client friendly? </p>
<p>If you&#8217;re shouting &#8220;We are! We are!&#8221; then I might have just wasted your time&#8230;&#8230;well, while validating your work. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  I hope you consider that an even trade. </p>
<p>If you&#8217;re shouting &#8220;Why aren&#8217;t we doing this!?&#8221; Well&#8230;&#8230;.Why aren&#8217;t you? Ads need love too. </p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2010/03/what-ive-learned-time-for-the-auto-i-mean-ad-industry-needs-to-catch-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstracting the web, the iPad, and print media coming full circle.</title>
		<link>http://stairwellblog.com/2010/02/abstracting-the-web-the-ipad-and-print-media-coming-full-circle/</link>
		<comments>http://stairwellblog.com/2010/02/abstracting-the-web-the-ipad-and-print-media-coming-full-circle/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 23:45:16 +0000</pubDate>
		<dc:creator>Bryant</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[publishing]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=2115</guid>
		<description><![CDATA[<p>In another blog post, I brought up the topic of how the web is being &#8220;abstracted&#8221; into new mediums and devices such as Rich Internet Applications, netbooks and tablets (e.g. the iPad).  After pondering this topic a little more, it hit me that that this concept might be a lot bigger than I initially thought, and deserving of an individual posting.</p>
<p><a href="http://stairwellblog.com/wp-content/uploads/2010/02/RS_SurfTheWeb1.gif"><img class="aligncenter size-full wp-image-2127" src="http://stairwellblog.com/wp-content/uploads/2010/02/RS_SurfTheWeb1.gif" alt="RS_SurfTheWeb" width="556" height="304" /></a></p>
<p>As I already mentioned, there are new mediums and devices coming out that are abstracting the web and displaying the content in other more unique forms.  Instead of the typical user sitting down at his/her work station and loading up&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>In another blog post, I brought up the topic of how the web is being &#8220;abstracted&#8221; into new mediums and devices such as Rich Internet Applications, netbooks and tablets (e.g. the iPad).  After pondering this topic a little more, it hit me that that this concept might be a lot bigger than I initially thought, and deserving of an individual posting.</p>
<p><a href="http://stairwellblog.com/wp-content/uploads/2010/02/RS_SurfTheWeb1.gif"><img class="aligncenter size-full wp-image-2127" src="http://stairwellblog.com/wp-content/uploads/2010/02/RS_SurfTheWeb1.gif" alt="RS_SurfTheWeb" width="556" height="304" /></a></p>
<p>As I already mentioned, there are new mediums and devices coming out that are abstracting the web and displaying the content in other more unique forms.  Instead of the typical user sitting down at his/her work station and loading up Generic Browser X to &#8220;surf the web&#8221;, they are opening their Twitter client, geo-locating friends in an iPhone app, and soon to be reading books on their iPad.</p>
<p>Without trying to sound to cliche, the internet &#8211; and the data that supports it &#8211; is infiltrating our lives and dictating how we communicate amongst ourselves.  Maybe &#8220;dictate&#8221; and &#8220;infiltrating&#8221; are harsh words, but when thinking about it from a newspaper publishers point of view, those words don&#8217;t sound harsh enough.  It&#8217;s no question that the internet has hurt traditional print media publishers and the primary reason many of these companies have gone out of business. But my question is what aspect of the internet actually led to the demise?  The answer is not that mind-blowing, but is simply, the <em>accessibility</em> of information became so abundant we no longer needed to pay to see the same content elsewhere.</p>
<p>At this point you might be saying &#8220;Wow, great concept, Bryant&#8230; &#8216;Accessibility&#8217; &#8211; welcome to 2010,&#8221; and I will also agree that this concept is rather outdated, but it is also the exact point I am trying to make. Instead of saying &#8220;welcome to 2010&#8243; you should have been saying &#8220;welcome to 2006.&#8221;<em> Accessibility</em> of information is what <strong>has already</strong> shaped the internet and is what made it into this giant creation that we use today.  The frontier that is <strong>now</strong> being conquered, and is the root of the &#8220;abstraction&#8221; process I have refereed to, is making the web more <em>usable. </em></p>
<p><a href="http://stairwellblog.com/wp-content/uploads/2010/02/adobe-air1.jpg"><img class="aligncenter size-full wp-image-2126" src="http://stairwellblog.com/wp-content/uploads/2010/02/adobe-air1.jpg" alt="adobe-air" width="450" height="397" /></a></p>
<p>When you look at some of the first products that &#8220;abstracted&#8221; the internet, such as Rich Internet Applications (RIA), it&#8217;s very clear that they wanted to take the content of the web and make it a more enjoyable and usable experience.  Why is the internet not a usable and enjoyable experience? Ha! Well that can be answered several ways (and also very sarcastically), but in short it is because of the infrastructure of the internet.  At that point in time (which we are arguably still living in) HTML and web browsers were not advanced enough to handle some of the interactions and display patterns designers wanted to use to display content.  Because of this technological limitation, developers created RIA, which can grab the content of the internet and harness the power of a localized application to deliver it to a user in a much more versatile, running environment.</p>
<p>As powerful as some RIAs are, the main drawback is that it was not running inside the browser, the main component of using the Internet.  However, with the adoption and implementation of new web standards into modern web browsers, browsers would soon be able to handle all of the same interactions and display patterns that RIA currently did.</p>
<p>Flash forward to today (You didn&#8217;t know we were in a flashback mode, did you?) where most modern browsers support forms of HTML5 + CSS3, and paired up with the canvas element, there are javascript techniques out there that will rival Flash.  What is the next step?  Well, it&#8217;s taking the usability and accessibility of the web and delivering it in a product smaller, leaner and more tactile than looking at it on your desk monitor&#8230;.wah-lah &#8211; the iPad!</p>
<p><a href="http://stairwellblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-5.36.36-PM.png"><img class="aligncenter size-large wp-image-2124" src="http://stairwellblog.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-5.36.36-PM-625x471.png" alt="Screen shot 2010-02-15 at 5.36.36 PM" width="625" height="471" /></a></p>
<p>Now, I don&#8217;t consider myself to be an Apple fanboy, though it may seem like I am one when I talk about the iPad. But what I am really trying to explain is the concept and execution of the iPad.  I don&#8217;t think any company has nailed the tablet concept quite like Apple &#8211; although I do think other companies definitely have the capacity to do so.  Anyway, the reason I believe the iPad to be so revolutionary, is that it takes the accessibility of the internet, adds in usability features found on modern web browsers and couples the whole thing in a nice, lean well-designed mobile product.  It&#8217;s the type of product that you look at old 1980&#8242;s movies and see futuristic people with flying cars using, except the main difference is that it&#8217;s actually here. Does the iPad not have multiple applications running? No.  Does it have Flash? No. Does it deliver its most important asset, the internet, in a new portable textile medium? YES! And it seems to deliver that extremely well.</p>
<p>I must say that I was very disappointed when I learned that the iPad didn&#8217;t have a forward-facing camera. Furthermore, I think the price structure of the various iPad units suggests a bait and switch approach ($499, yeah but who is going to buy this without 3G?). But when it&#8217;s all said and done ,I would be more than willing to pay $650-ish dollars for a device that delivered the Internet to me in a portable, book-sized container.</p>
<p>And now, finally, back to the publishing industry.  It would seem that with all this technology they are destined to go the way of the Dodo Bird, but if you take a closer look (at least at the iPad) you can see the iTunes store paradigm fitting in perfectly.  iTunes itself has grown to be the world&#8217;s largest music retailer, and an argument can be made that people only download music that is easy to get, no matter if it&#8217;s free or .99 cents.  Bringing this sales approach to the magazine and newspaper publishing industry would be a win-win&#8230;.win.  Publishers will still be able to provide their premium content to virtual subscribers and not have to worry about printing physical copies. Users will be able to access rich &#8220;print&#8221; media on new user-friendly devices that enhance the reading experience. And device manufactures will be able to create these new devices and push the bounds of technology even further.</p>
<p>Whew&#8230; that was a lot of writing, and maybe my conclusion is a little optimistic. But in the face of seeing a major industry collapse on itself, it is refreshing to see an outlook change and be reinvigorated by the advent of a new cutting edge piece of technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2010/02/abstracting-the-web-the-ipad-and-print-media-coming-full-circle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The dominance of search</title>
		<link>http://stairwellblog.com/2010/02/the-dominance-of-search/</link>
		<comments>http://stairwellblog.com/2010/02/the-dominance-of-search/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:19:14 +0000</pubDate>
		<dc:creator>tyler</dc:creator>
				<category><![CDATA[Findings]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Chicago]]></category>
		<category><![CDATA[findability]]></category>
		<category><![CDATA[Matt Moog]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[peter morville]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[Viewpoints]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=2081</guid>
		<description><![CDATA[<p style="font-family: Arial,Helvetica,sans-serif;font-size: 14px;font-weight: normal">Last night I attended a presentation for web professionals in the Chicago area. It was organized through <a href="http://www.meetup.com/Chicago-Interactive-Design-Development/">meetup.com</a>. The presenter was <a href="http://www.linkedin.com/profile?viewProfile=&#38;key=6535227&#38;authToken=jcZo&#38;authType=NAME_SEARCH&#38;locale=en_US&#38;srchindex=1&#38;pvs=ps&#38;goback=.fps_matt+moog+viewpoints_*1_*1_*1_*1_*1_*1_*1_Y_*1_*1_*1_false_1_R_true_CC%2CN%2CI%2CG%2CPC%2CED%2CFG%2CL%2CDR_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2">Matt Moog</a>, Founder &#38; CEO at <a href="http://www.viewpoints.com/">Viewpoints</a>. You can see his slide deck <a href="http://onpoint.viewpoints.com/2010/02/viewpoints-presentation-about-social-commerce-to-chicago-interactive-design-development-group.html">here</a>.</p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 14px;font-weight: normal">Among his many relevant points was the notion he referred to as &#8216;the dominance of search.&#8217; Matt&#8217;s focus for the evening was specifically on sites that serve up social commerce, but I think the search issue is something any site needs to consider seriously. What Matt was referring to was his claim was that 50-80% of traffic across the web comes from search. This was a&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p style="font-family: Arial,Helvetica,sans-serif;font-size: 14px;font-weight: normal">Last night I attended a presentation for web professionals in the Chicago area. It was organized through <a href="http://www.meetup.com/Chicago-Interactive-Design-Development/">meetup.com</a>. The presenter was <a href="http://www.linkedin.com/profile?viewProfile=&amp;key=6535227&amp;authToken=jcZo&amp;authType=NAME_SEARCH&amp;locale=en_US&amp;srchindex=1&amp;pvs=ps&amp;goback=.fps_matt+moog+viewpoints_*1_*1_*1_*1_*1_*1_*1_Y_*1_*1_*1_false_1_R_true_CC%2CN%2CI%2CG%2CPC%2CED%2CFG%2CL%2CDR_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2_*2">Matt Moog</a>, Founder &amp; CEO at <a href="http://www.viewpoints.com/">Viewpoints</a>. You can see his slide deck <a href="http://onpoint.viewpoints.com/2010/02/viewpoints-presentation-about-social-commerce-to-chicago-interactive-design-development-group.html">here</a>.</p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 14px;font-weight: normal">Among his many relevant points was the notion he referred to as &#8216;the dominance of search.&#8217; Matt&#8217;s focus for the evening was specifically on sites that serve up social commerce, but I think the search issue is something any site needs to consider seriously. What Matt was referring to was his claim was that 50-80% of traffic across the web comes from search. This was a profound, yet not to surprising statistic when I heard it. However, in my experience, clients are not very proactive in doing everything they can to make their sites findable. As web designers we should take more responsibility in educating our clients on the importance of being findable. Traditional means of SEO such as embedding tags in code, writing bot friendly copy, etc. are still a great start, however the effectiveness of user generated comments/reviews of your service should not be overlooked.</p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 14px;font-weight: normal">Matt remarked that a quality review can, and will, bring in roughly 50 people to your site. At which point. if you do a reasonable job of converting those 50 people to buy (say 3 or 4%), one could argue that the person who wrote the review for you actually played a more valuable roll while they were on your site than if they had actually made a purchase! This view may be a little subjective, but the key takeaway is that the people who are using your software <em>and</em> are actually taking their time to participate in the social sphere are extremely valuable users. They&#8217;ll give you credibility, get others involved, and help you create meaningful content. They are valuable for many reasons, but if for nothing else, they&#8217;ll bring other people to your site.</p>
<p style="font-family: Arial,Helvetica,sans-serif;font-size: 14px;font-weight: normal">&#8220;Will my users be able to find me through search?&#8221; is a question Matt proposed everyone who wanted to have a successful presence on the web, should be asking up front. In other words, get your clients on board with SEO right out of the gate! There’s no way around the fact that there’s an overwhelming amount of content online. Having a site that is cutting edge, cool, innovative, clever, refined, well planned, etc. will not make your software successful based on these factors alone. You have to be findable. For more on findability you can check out <a href="http://findability.org/">findability.org</a> or <a href="http://boxesandarrows.com/person/25-petermorville">Peter Morville’s</a> book called <a href="http://www.amazon.com/Ambient-Findability-Peter-Morville/dp/0596007655/findability-20/"><em>Ambient Findability</em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2010/02/the-dominance-of-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The art and importance of good wireframes</title>
		<link>http://stairwellblog.com/2010/01/the-art-and-importance-of-good-wireframes/</link>
		<comments>http://stairwellblog.com/2010/01/the-art-and-importance-of-good-wireframes/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 23:08:25 +0000</pubDate>
		<dc:creator>tyler</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=1947</guid>
		<description><![CDATA[<p style="line-height: 28.5px;text-align: justify">In his book, <a href="http://communicatingdesign.com/">Communicating Design</a>, Dan Brown defines wireframes as:</p>
<p style="font-size: x-small;text-align: center"><em>“A simplified view of what content will appear on each screen of the final product, usually devoid of color, typographical styles, and images…” </em></p>
<p style="line-height: 28.5px;text-align: justify"><a href="http://www.smashingmagazine.com/2009/09/01/35-excellent-wireframing-resources/">Wireframes</a> can technically be generated by just about anybody. However it is painfully apparent when someone with little or no experience takes it upon themselves to do so. The classic example is when a client has some ideas they think are great and feels the need to express them. More often than not those ideas could be communicated through words via email or on the phone and it would&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p style="line-height: 28.5px;text-align: justify">In his book, <a href="http://communicatingdesign.com/">Communicating Design</a>, Dan Brown defines wireframes as:</p>
<p style="font-size: x-small;text-align: center"><em>“A simplified view of what content will appear on each screen of the final product, usually devoid of color, typographical styles, and images…” </em></p>
<p style="line-height: 28.5px;text-align: justify"><a href="http://www.smashingmagazine.com/2009/09/01/35-excellent-wireframing-resources/">Wireframes</a> can technically be generated by just about anybody. However it is painfully apparent when someone with little or no experience takes it upon themselves to do so. The classic example is when a client has some ideas they think are great and feels the need to express them. More often than not those ideas could be communicated through words via email or on the phone and it would be best to avoid wireframing on their part. A person without the training and skills required for effective wireframing is liable to produce incomplete or inaccurate documents that can harm the overall process if not fixed later by someone who is more experienced. Sometimes wireframe documents can look quite simple, but that does not mean that their purpose or the information they contain should be taken lightly. The information found (or not found) within has profound implications. Inappropriate page elements documented at early steps can produce results which reverberate throughout a project all the way through to launch.</p>
<p style="line-height: 28.5px;text-align: justify">Wireframes exist, in part, to communicate the various ideas that will make up the page. But they also are tasked with communicating the intended <a href="http://mashable.com/2009/01/09/user-experience-design/">user’s experience</a> (UX). The UX is like a big collective idea made up of all the individual ideas. Whenever the individual ideas are manipulated, the collective idea is affected. While it is desirable for many individuals to contribute to the individual ideas, it takes a trained professional to shape them all into the big idea. A project is delicate early on and I think there should generally be a single <a href="http://articles.sitepoint.com/article/architecture-defined#">Information Architect</a> (IA) to produce wireframes and their subsequent iterations to preserve the integrity of the UX.  The advantage of having a single purveyor of wireframes is that good information tends to get discovered and refined, while bad information is removed more efficiently. If the project is large enough to have additional IAs or the client insists on being directly involved then some standards should be put in place to avoid miscommunication and extra work. It may be a good idea to create a framework template as well as a basic elements library for all parties to share.</p>
<p style="line-height: 28.5px;text-align: justify">Good wireframes should embody an organized aesthetic, which is visually pleasing, yet neutral in emotional expression. This will help to communicate what is truly important: the ideas. Although wireframes are basic it still takes many years for an IA to develop their style. There is a methodology to creating these documents we all develop over time and seldom do we ever do it the same way as our peers. I would be interested to hear about instances from other UX designers who are responsible for producing wireframes  and hear weather or not they prefer to work solo or collaborate with their co-workers to produce final deliverables. Additionally, I would like to hear how other UXers feel about clients being involved as co-creators of wireframes speciffically. Perhaps some organizations have a sophisticated system in place which allows for and encourages this. To date, I have yet to see an organization with such a structure. Much of this article is based on opinions I&#8217;ve gathered from my personal experiences and those of my close pewers. Every designer and organization however is going to use a slightly different approach. I hope that there are others out there that can shed light on this topic for everyone to consider as well.</p>
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px"><strong>Some examples of  good wireframes with varying styles:</strong></p>
<p style="font-size: 19.5px;line-height: 28.5px"><img class="alignleft size-full wp-image-1976" style="font-size: 19.5px;line-height: 28.5px" src="http://stairwellblog.com/wp-content/uploads/2010/01/portal-wireframe24.jpg" alt="sample wireframe 1" width="450" height="411" /></p>
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px"><a href="http://willevans.gather.com/"><img class="alignleft size-full wp-image-1977" style="font-size: 19.5px;line-height: 28.5px" src="http://stairwellblog.com/wp-content/uploads/2010/01/Will_Evans_wireframe3.jpg" alt="Sample wireframe 2" width="450" height="411" /></a></p>
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px">
<p style="font-size: 19.5px;line-height: 28.5px"><a href="http://stairwellblog.com/tyler-mohr/"><img class="alignleft size-full wp-image-1979" style="font-size: 19.5px;line-height: 28.5px" src="http://stairwellblog.com/wp-content/uploads/2010/01/wireframe-sample-32.jpg" alt=" sample wireframe 3" width="450" height="418.5" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2010/01/the-art-and-importance-of-good-wireframes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash &amp; HTML Website Integration &#8211; Best Practices</title>
		<link>http://stairwellblog.com/2009/05/flash-html-website-integration-best-practices/</link>
		<comments>http://stairwellblog.com/2009/05/flash-html-website-integration-best-practices/#comments</comments>
		<pubDate>Fri, 01 May 2009 18:03:22 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[search engine optimization]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[swf object]]></category>
		<category><![CDATA[swfAddress]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=1048</guid>
		<description><![CDATA[<p>Recently at Billups Design we built a fully functional HTML replica of a client&#8217;s flash site and were puzzled as to the latest and best practices for integrating that HTML site with the existing Flash site to ensure the greatest usability and SEO results. We had a few options that came to mind first.</p>
<ol>
<li>A splash page to allow the user to choose the HTML Site or the Flash Site.</li>
<li>A separate directory for the HTML Site to live that only Google would see.</li>
<li>A flash detection that would redirect the user to the HTML site if it didn&#8217;t have Flash, Google included.</li>
</ol>
<p>None&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Recently at Billups Design we built a fully functional HTML replica of a client&#8217;s flash site and were puzzled as to the latest and best practices for integrating that HTML site with the existing Flash site to ensure the greatest usability and SEO results. We had a few options that came to mind first.</p>
<ol>
<li>A splash page to allow the user to choose the HTML Site or the Flash Site.</li>
<li>A separate directory for the HTML Site to live that only Google would see.</li>
<li>A flash detection that would redirect the user to the HTML site if it didn&#8217;t have Flash, Google included.</li>
</ol>
<p>None of these options were ideal. A splash page is a usability nightmare and putting the HTML site in a separate directory would still hurt users coming from Google results as the search engines would most definitely just send them to the HTML site, which defeats the purpose of having a Flash site in the first place. So instead we took some inspiration from Damien Bianchi at <a href="http://www.adobe.com/devnet/seo/articles/techniques_ria.html">Adobe.com</a> and put the HTML and Flash in the same directory using tricks to serve up the appropriate Flash content that cooresponded to each HTML page.</p>
<ol>
<li><span style="text-decoration: line-through;">A splash page to allow the user to choose the HTML Site or the Flash Site.</span></li>
<li><span style="text-decoration: line-through;">A separate directory for the HTML Site to live that only Google would see.</span></li>
<li><span style="text-decoration: line-through;">A flash detection that would redirect the user to the HTML site if it didn&#8217;t have Flash, Google included.</span></li>
<li>Flash detection to serve up the SWF or the HTML in the same page.</li>
</ol>
<p><strong>Creating the HTML Site.</strong></p>
<p>There were two goals in creating the HTML site.</p>
<ol>
<li>Improve SEO Results</li>
<li>Have a Good User Experience Fallback for Users Without Flash</li>
</ol>
<p>For the first goal it was just a matter of adding an HTML page to correspond to each &#8220;page&#8221; in the Flash version of the site. The HTML uses all static content, rather than pulling the content from the XML files the Flash version uses, so search engines won&#8217;t have any trouble reading it. We also took care to use the best practices for SEO HTML markup. That is, we used the appropriate heading tags, alt tags on images, etc.</p>
<p>The second goal was a little trickier. Flash is a great platform for smooth animations and unorthodox layouts. Thus, replicating its strenghts with HTML/CSS/Javascript can be a bit tricky. We put to use jQuery, a javascript framework, to make it a bit easier and reduce the heavy lifting of coding the advanced animations and DOM manipulation ourselves. We added in some various jQuery plugins like JScrollPane, jQuery Color Animations, and some other smaller ones to allow us to really replicate some of the cool things the Flash site did. Once it was all said and done we had a pretty good replica that forces you to look twice and even caught some people around the office here off guard at determining if the site if Flash or not. Once we knew it was hard to tell we figured we had created a pretty comparable user experience in HTML.</p>
<p><strong>Adding the Flash SWF to the HTML Site.</strong></p>
<p>Once the HTML Site was completed we had to add the SWF of the Flash Site to each HTML page. We wanted the site to have the HTML be static and the flash to replace it if the user had it installed. So we used SWFobject 2.0 to detect if the appropriate Flash version was installed and SWFobject replaced the container div of the HTML with the SWF file. Voila, we have all the benefits of HTML SEO with all the benefits of Flash. Now all we had to do was get the SWF to load the appropriate &#8220;page&#8221; depending on which HTML page it was on.</p>
<p><strong>Adding FlashVars to Load the Appropriate Page and SWF Address</strong></p>
<p>Since the Flash SWF loads on the homepage by default we had to find a way to tell the SWF that it wasn&#8217;t on the index.html page, but it was, for example, on the contact.html page. We added some simple FlashVars to each page with SWFobject to communicate with the SWF what page it was on. They looked something like this,</p>
<div class="codecolorer-container javascript mac-classic" style="overflow:auto;white-space:nowrap;width:550px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">var</span> flashvars <span class="sy0">=</span> <span class="br0">&#123;</span>page<span class="sy0">:</span> <span class="st0">&quot;contact&quot;</span><span class="br0">&#125;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>Hey everyone, it&#8217;s Ryan <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230;.I secretly hacked in to Steve&#8217;s account and am posting in his newest blog. I&#8217;m kidding, as was the case with our Flash / HTML website integration, we&#8217;re gonna tag team this blog post like the <a href="http://4.bp.blogspot.com/_9GUr__JVdTE/SKOtGzVX7LI/AAAAAAAAAq0/tVK5IHuEVPM/s400/tt-lod01st-1.jpg">Legion of Doom</a>. I&#8217;ll help to shed some light on how we got our flash and HTML to play nicely together.</p>
<p>As Steve mentioned, we  used flashVars to pass in a page value (or string if you want to be exact). What we were really trying to accomplish was coming up with a universal link, that could be used outisde of the website, to funnel people in (regardless of what technology they may or may not have). We simply check the users machine for flash with swfObject and then serve them the best available technology (flash or HTML).  If it was flash, we used the flashVars string to help flag the correct page to  be displayed. I&#8217;m sure you&#8217;re sitting there thinking, how? Well it&#8217;s your lucky day, I&#8217;m about to explain how we went about accomplishing that.</p>
<p>For those familiar with <a href="http://www.asual.com/swfaddress/">swfAddress</a>, this code should look familiar to you&#8230;..</p>
<div class="codecolorer-container actionscript mac-classic" style="overflow:auto;white-space:nowrap;width:550px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="actionscript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">_currentframe</span> == <span class="nu0">2</span> <span class="sy0">&amp;&amp;</span> value == <span class="st0">''</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">play</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<br />
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
<span class="kw3">gotoAndStop</span><span class="br0">&#40;</span><span class="st0">'$'</span> + value<span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>*****just as a note, the code plug in we&#8217;re working with isn&#8217;t friends with the ampersand. &amp;amp;&amp;amp; should simply be &#8216;&amp;&amp;&#8217;. I&#8217;m sure most of you caught it but I just wanted to point it out to avoid any confusion. It should be &#8230;&#8230;. if (_currentframe == 2 &amp;&amp; value == &#8221;).</p>
<p>If the current frame = 2 and the swfAddress JS is suppying a blank value, it just forwards you on to the next frame (which is the homepage). If it&#8217;s value is defined, it skips to that page. Easy enough right? Well, the dilemma was how could we get this to flag what page we wanted with a flashVars value without disrupting how the function would work throughout the site? If you haven&#8217;t noticed already, that SWFAddress.onChange function only appears once in your flash code and the flash platform allows you to &#8220;re-use&#8221; it by simply making a basic call to it &#8230;.like:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;width:550px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">SWFAddress.setValue('about');</div></td></tr></tbody></table></div>
<p>The function on frame 2 sends the &#8216;about&#8217; value through the onChange function and spits the user out on to the about page. If we wanted to modify that main function, we could be doing (and did on several occasions <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) some unforeseen damage to how the swfAddress will / would be able to function (beyond the home page). Obviously, we didn&#8217;t want that to be the solution for our end product. This really became one of those situations where it was just inevitable that we would really over think it before coming to a final conclusion. After a few random trial experiments, we unscrunched our foreheads, started laughing and realized how insanely simple this actually was to accomplish. So what was the solution?</p>
<p>We added a new key frame to the timeline (inbetween the swfAddress.onChange function and the home page). Well, it wasn&#8217;t THAT simple. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Instead of just forwarding the site on to the home page after it went through that conditional check (if it had a blank value), we just ran it through a sifter so to speak. If it had a blank value, I wrote a switch statement that would match the HTML page&#8217;s flashVars value to it&#8217;s intended page inside the flash movie. When it flagged a match, it changed the swf address value and forwarded it on to the desired page (i.e. if the flashVars value was &#8216;contact&#8217;, we forwarded it to the contact page). Here&#8217;s an example of what I&#8217;m talking about&#8230;..</p>
<div class="codecolorer-container javascript mac-classic" style="overflow:auto;white-space:nowrap;width:550px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw1">switch</span><span class="br0">&#40;</span>pageValue<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="co1">//--------------</span><br />
<span class="kw1">case</span> <span class="st0">&quot;reservations&quot;</span><span class="sy0">:</span><br />
gotoAndStop<span class="br0">&#40;</span><span class="st0">'$'</span> <span class="sy0">+</span> <span class="st0">'/'</span> <span class="sy0">+</span> pageValue <span class="sy0">+</span> <span class="st0">'/'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">break</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>The reason this works is that there&#8217;s only one occasion where the functions if / else statement forwards on to the next frame? Anyone have a guess? When the page is initially loaded (aka doesn&#8217;t have a swfAddress value). Any other time it bumps down in to the else portion of the conditional, drops it&#8217;s page value off at the coat check and gets forwarded on to that specific page inside the flash movie by swfAddress (like it would if someone pressed a button inside the movie). The only time our function will ever be triggered is when the page is loaded and that&#8217;s exactly how we wanted it to be. Any other time the frame is skipped over by the function on the previous key frame.</p>
<p>Hopefully that all made sense. Here&#8217;s the listed steps if you got lost:</p>
<p>1.) Express a flashVars value in your HTML. In our case, we used a string of letters.<br />
2.) Use swfObject to check for flash.<br />
3.) Use swfAddress to generate unique deep links.<br />
4.) Add in a new keyframe between the sfwAddress value check function keyframe and the homepage keyframe.<br />
5.) Write a switch statement on your new keyframe that takes the flashVars value and matches it to it&#8217;s existing page in the flash movie.<br />
6.) Test, test, test.</p>
<p>Aside from the listed steps / examples, one place I would guess people will get hung up on is getting the added function / switch statement to move on to the home page (if that&#8217;s the desired effect). There are several ways you can accomplish it, so don&#8217;t over think it. I chose to just make the default state in the switch statement a play(); command.</p>
<div class="codecolorer-container javascript mac-classic" style="overflow:auto;white-space:nowrap;width:550px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">default</span><span class="sy0">:</span><br />
play<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">break</span><span class="sy0">;</span><br />
<span class="co1">//--------------</span><br />
<span class="br0">&#125;</span></div></td></tr></tbody></table></div>
<p>Easy enough right? You could also supply the index.html page with a flashVars value of &#8220;home&#8221; or &#8220;index&#8221; and check for it specifically. Either way works, so use which ever one you prefer.</p>
<p>If you have any specific questions, post them in a comment and we&#8217;ll try to get back to you. As always happy flashing! <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2009/05/flash-html-website-integration-best-practices/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Finally Time for IE6&#8242;s Curtain Call</title>
		<link>http://stairwellblog.com/2009/04/its-time-for-ie6s-curtain-call/</link>
		<comments>http://stairwellblog.com/2009/04/its-time-for-ie6s-curtain-call/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 16:09:58 +0000</pubDate>
		<dc:creator>steve</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[cross browser]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=509</guid>
		<description><![CDATA[<p>In the world of web development there has been a recent push from all around the world to finally drop support for IE6. It&#8217;s understandable since IE8 is now released and IE6 is about 8 years old, an antique in computer years. However, there are still a measurable amount of users still launching IE6 as their primary browser, 17.4% of all users according to <a href="http://www.w3schools.com/browsers/browsers_stats.asp">w3schools.</a> So should we abandon the traditional model of graceful degradation and cross browser compatibility and stop supporting IE6? Some very substantial web developers have said yes.</p>
<p><strong>37signals.<br />
<span style="font-weight: normal;"><a href="http://37signals.com">37signal</a>s started <a href="http://37signals.blogs.com/products/2008/07/basecamp-phasin.html">phasing out support for ie6</a> starting in October 1, 2008.&#8230;</span></strong></p>]]></description>
			<content:encoded><![CDATA[<p>In the world of web development there has been a recent push from all around the world to finally drop support for IE6. It&#8217;s understandable since IE8 is now released and IE6 is about 8 years old, an antique in computer years. However, there are still a measurable amount of users still launching IE6 as their primary browser, 17.4% of all users according to <a href="http://www.w3schools.com/browsers/browsers_stats.asp">w3schools.</a> So should we abandon the traditional model of graceful degradation and cross browser compatibility and stop supporting IE6? Some very substantial web developers have said yes.</p>
<p><strong>37signals.<br />
<span style="font-weight: normal;"><a href="http://37signals.com">37signal</a>s started <a href="http://37signals.blogs.com/products/2008/07/basecamp-phasin.html">phasing out support for ie6</a> starting in October 1, 2008. They&#8217;re not stopping ie6 users from logging in and using their software all at once. They&#8217;re taking the phase out approach of telling everyone that any new improvements or fixes may not be compatible with IE6.<br />
</span></strong></p>
<div id="attachment_549" class="wp-caption aligncenter" style="width: 642px"><a href="http://37signals.blogs.com/products/2008/07/basecamp-phasin.html"><img class="size-full wp-image-549 " title="phasing_out_ie" src="http://stairwellblog.com/wp-content/uploads/2009/03/phasing_out_ie.png" alt=" " width="632" height="253" /></a><p class="wp-caption-text"> </p></div>
<p><strong>Facebook.<br />
<span style="font-weight: normal;"><a href="http://facebook.com">Facebook</a> has decided to provide an inferior experience and a large warning message to all their users in IE6.<br />
</span></strong></p>
<div id="attachment_553" class="wp-caption aligncenter" style="width: 645px"><a href="http://www.flickr.com/photos/colbyworld/3024754966/"><img class="size-full wp-image-553" title="facebook_ie6" src="http://stairwellblog.com/wp-content/uploads/2009/03/facebook_ie6.jpg" alt=" " width="635" height="351" /></a><p class="wp-caption-text"> </p></div>
<p><strong><span style="font-weight: normal;"><strong>Apple &#8211; Mobile Me.</strong><br />
Apple touts <a href="http://me.com">Mobile Me</a> as a desktop experience on the web. Thus their site pushes far beyond what developers can even do on IE6. IE6&#8242;s slow javascript engine would just end up with too bad of a user experience for Apple, so they don&#8217;t even let you log in with IE6.<br />
</span></strong></p>
<div id="attachment_561" class="wp-caption aligncenter" style="width: 662px"><a href="http://me.com"><img class="size-full wp-image-561 " title="mobile_me_ie6" src="http://stairwellblog.com/wp-content/uploads/2009/03/mobile_me_ie6.png" alt="Notice the ugly transparent png apple logo" width="652" height="391" /></a><p class="wp-caption-text">Notice the ugly transparent png apple logo</p></div>
<p><strong><span style="font-weight: normal;">One thing these websites have is that they&#8217;re not even websites, they&#8217;re web applications. They, like many desktop applications, are starting to require a system upgrade to use their software. Users tend to me more understanding when it comes to an application asking them to upgrade than it does a website. We do it all the time on the desktop and this helps these developers get away with such bold actions. The other thing that separates these sites from most is they&#8217;re actively developed large applications. So they have new features, design iterations, fixes, and enhancements constantly, and as the web moves forward and IE6 stays so far behind it&#8217;s becoming more expensive and time consuming to try to retrofit things to work in IE6. What was financially feasible 2 years ago is no longer today. It had to start sometime, why not now?</span></strong></p>
<p>Well if web applications killing support for IE6, what are web sites to do? First off, they don&#8217;t have the advantage of users tolerating a required update like applications, and they don&#8217;t always have the constant development iterations that web applications have, forcing them to kill IE6 for financial reasons. This hasn&#8217;t stopped a few others from taking an anti IE6 approach.</p>
<p><strong>Finn.no</strong><br />
One of the largest sites in Norway, <a href="http://finn.no">Finn.no</a> has <a href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;u=http%3A%2F%2Flabs.finn.no%2Fblog%2Ffinn-anbefaler-ie6-brukere-a-oppgradere-sin-nettleser&amp;sl=no&amp;tl=en">dropped support for IE6</a> and initiated a <a href="http://ie6.forteller.net/index.php?title=Main_Page">campaign</a> to get others to follow suit. In fact they saw results of less ie6 users immediately which they&#8217;ve interpreted as people upgrading.</p>
<div id="attachment_563" class="wp-caption aligncenter" style="width: 746px"><a href="http://finn.no"><img class="size-full wp-image-563 " title="finn_ie6" src="http://stairwellblog.com/wp-content/uploads/2009/03/finn_ie6.png" alt=" " width="736" height="81" /></a><p class="wp-caption-text"> </p></div>
<p><strong>45Royale.com</strong><br />
<a href="http://45royale.com"> 45Royale</a> is a respectable web agency that decided to offer a <a href="http://45royale.com/ie6">one IE6 page</a> watered down version of their site to anyone using IE6. The site is very careful to let people know they&#8217;re only seeing 9% of their website and offers links to download a more modern browser.</p>
<div id="attachment_564" class="wp-caption aligncenter" style="width: 635px"><a href="http://45royale.com/ie6"><img class="size-large wp-image-564 " title="45royale_ie6" src="http://stairwellblog.com/wp-content/uploads/2009/03/45royale_ie6-625x292.png" alt="  " width="625" height="292" /></a><p class="wp-caption-text">  </p></div>
<p>So what does this mean for Billups Design? Currently we&#8217;ve worked hard to make the IE6 user experience of <a href="http://billupsdesign.com">BillupsDesign.com</a> as close to other modern browsers as possible.  We use a respectable level of ajax effects, transparent png and advanced CSS layout techniques, all of which we&#8217;ve tried to degrade gracefully for IE6. Do we keep putting hours of labor into supporting this one browser when the gulf between it and &#8220;modern&#8221; grows wider each day?</p>
<p>We&#8217;ve decided to take on a little IE6 experiment of our own. Since relaunching our site we&#8217;ve been actively pursuing feedback. With feedback comes iterations, and with iterations comes the decision to support IE6 or not. Our Google Analytics stats show that we&#8217;re getting about 4.7% of our visits from IE6 users. Thats about 1/20 users with IE6. Its a small percentage, but still a decent size. So we&#8217;ve built  a one-pager (a la 45Royale.com) to serve up to anyone visiting <a href="http://billupsdesign.com">billupsdesign.com</a> in IE6. We took a similar philosophy to mobile web design and filtered out all but the most important aspects of our site into the one page. You can check it out at <a rel="nofollow" href="http://billupsdesign.com/ie6/">billupsdesign.com/ie6/</a> .</p>
<p>Further reading:<br />
<a href="http://www.bringdownie6.com/bring-down-ie-6.html">http://www.bringdownie6.com/bring-down-ie-6.html</p>
<p>http://dearie6.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2009/04/its-time-for-ie6s-curtain-call/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Creating Fluid AS3 Flash Layouts: The Basics.</title>
		<link>http://stairwellblog.com/2009/03/creating-fluid-as3-flash-layouts-the-basics/</link>
		<comments>http://stairwellblog.com/2009/03/creating-fluid-as3-flash-layouts-the-basics/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:04:34 +0000</pubDate>
		<dc:creator>Ryan Nasipak</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=511</guid>
		<description><![CDATA[<p>When I first started developing in flash, there were inevitably things that just made me want to pull my hair out. Basic physics, Actionscript vs. timeline animation and embedding assets vs. creating them at run-time were just a few of the areas I really wrestled with early on. Part of the problem stemmed from a desire to go from 0-60 in 2 seconds (and that might be on the high side). I was like Nike, just do it. *** As a side, that reaches my corny joke quota for this blog&#8230;.so please, read on.</p>
<p>When I jump in to a project&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>When I first started developing in flash, there were inevitably things that just made me want to pull my hair out. Basic physics, Actionscript vs. timeline animation and embedding assets vs. creating them at run-time were just a few of the areas I really wrestled with early on. Part of the problem stemmed from a desire to go from 0-60 in 2 seconds (and that might be on the high side). I was like Nike, just do it. *** As a side, that reaches my corny joke quota for this blog&#8230;.so please, read on.</p>
<p>When I jump in to a project I&#8217;m really excited about, my patience (as a developer) is typically at an all-time low. I have always felt like (and sometimes still do) that I&#8217;m in a race against my own ideas. The longer I leave them in my head or on a piece of paper, the less likely they are to become reality.  This type of mentality inevitably leads to the late night coding sessions that all developers, at one point or another, experience. You know, the ones that single-handedly keep your favorite late night coffee chains in business. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>While I slowly developed a basic understanding of a lot of abstract concepts, what really gave me a lot of problems early in my flashing endeavors was taking that abstract concept and applying it to something practical. I understood, in it&#8217;s simplest form, why something was being done but I really struggled with taking that basic blanket concept and then plugging it in to one of my projects.</p>
<p>For one reason or another, understanding how to create a basic fluid flash layout really was a thorn in my side. I would find tutorials here and there that kind of taught me what I would like to know but the examples and explanations really left me with one or two questions that ultimately made me scrap the idea and move on to something else. After reading through some recent message board posts, I thought this might be a worthwhile topic to write about for some of the newer flashers out there. I would also encourage experienced developers to give this a read and add anything else (via comments) that might be worthwhile for anyone out there looking for a better understanding of fluid layout concepts.</p>
<p>As always, if you&#8217;re just starting out PLEASE don&#8217;t just rip through this post and download the source files. Why? Cause they&#8217;re not there. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Trust me, I&#8217;m just as impatient as the next guy when it comes to this kind of thing but the most important part of learning development techniques is to fight the urge to just grab a file and try to use it (without understanding exactly what&#8217;s going on). I&#8217;ll do my best to explain things as thoroughly as I can and if you have questions on this subject, feel free to post it in a comment.</p>
<p>With all that said, lets get started&#8230;&#8230;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>1.) The first thing you need to do is create a new AS3 document in Flash. I&#8217;m going to assume that if you&#8217;ve got to this point in the blog that you can do that on your own but if not, here&#8217;s a hint&#8230;&#8230; File &gt; New &gt; Flash File (Actionscript 3.0) &gt; Click OK.</p>
<p>2.) Open up the actions window (Window &gt; Actions) if you haven&#8217;t already and lets add some code. ***In the spirit of learning, I&#8217;m not going to type out this code. I will prove screen captures for you to follow but a big step early on in the development learning phase is physically learning to type out your own code (and making it a habit to do so). If you don&#8217;t cheat yourself early on, it will really payoff later down the road as you continue to build applications / websites. Copying and pasting is convenient but it won&#8217;t help you learn as quickly.</p>
<p>With all that said, lets add some code&#8230;..</p>
<p>3.) The first thing we&#8217;re going to do is add an event listener, in this case Event.RESIZE, to the stage. This will allow us to track when a user modifies the size of the stage and act accordingly to adjust the elements that live in / on it.</p>
<p>To do this we&#8217;ll assign the (Event.RESIZE) event to the stage property via an event listener (stage.addEventListener). This is going to dispatch an event whenever a user does anything that modifies the height or width of our published flash document.</p>
<p>To add an event listener we first express the instance we want the event attached to (stage), what we are going to attach (.addEventListener), the type of event listener (Event.RESIZE) and the function we are going to trigger when the stage is resized (onResizeStage). If you have done it correctly, your actions window should look something like this:</p>
<div id="attachment_799" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-799" title="step001" src="http://stairwellblog.com/wp-content/uploads/2009/03/step001.jpg" alt="Add your event listener." width="625" height="18" /><p class="wp-caption-text">Add your event listener.</p></div>
<p>Next, we need to write our (onResizeStage) function that is fired by our (Event.RESIZE) listener. Then, we can put our trace statement inside it and track when the stage is re sized and what it&#8217;s updated dimensions are. We start writing a basic function in AS3 by using the reserved word (function). We then give the function a name, in this case (onResizeStage). I&#8217;m sure you&#8217;ve noticed the function name is the same as the one we expressed in the stage.addEventListener(Event.RESIZE, onResizeStage ); event. That&#8217;s because we want that function to be fired when the (Event.RESIZE) event takes place.</p>
<p>Next, we asign a variable name (evt:) to the event object and then express the type of variable it is&#8230;in this case (Event). If this doesn&#8217;t make sense to you, I would suggest reading about some more basic AS3 practices on <a href="http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/">Adobe LiveDocs</a>. Lastly, we tack on :void, as the function is not going to return any information and open and then close it with our brackets / curly braces {}. Your function should look like this:</p>
<div id="attachment_800" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-800" title="step002" src="http://stairwellblog.com/wp-content/uploads/2009/03/step002.jpg" alt="Write your (onResizeStage) function." width="625" height="53" /><p class="wp-caption-text">Write your (onResizeStage) function.</p></div>
<p>4.) We want to take the information that the function (onResizeStage) outputs for us and use it to reposition our objects. To show you how the (Event.RESIZE) listener works, lets plug in a trace statement to get some feedback in the output window. Tracing is simply a way for you to get feedback from Flash and it really is a great tool for testing. It will return requests to the output window and help you to understand exactly how this RESIZE function works. I would expect most of you know how to type a trace statement but if not, I&#8217;ll break it down as best as I can.</p>
<p>5.) Since we&#8217;re interested in adjusting an instances position based on the height and width of the flash movie, lets trace the height and width of our flash movie and watch how our RESIZE event handles it.</p>
<p>Inside the brackets of our (onResizeStage) function we&#8217;ll type trace(stage.StageHeight, stage.stageWidth). Anything typed in &#8220;quotations&#8221; in a trace statement will display as static text. It&#8217;s good practice to label what it is that you are tracing (with a static label) inside your trace statement. Why? Well, let&#8217;s do it without a static label and you&#8217;ll see why it&#8217;s advantageous, especially in a larger project, to thoroughly comment / label all aspects of your code.</p>
<p>Inside our (onResizeStage) function, let&#8217;s type the following:</p>
<div id="attachment_801" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-801" title="step003" src="http://stairwellblog.com/wp-content/uploads/2009/03/step003.jpg" alt="Write your trace statement." width="625" height="53" /><p class="wp-caption-text">Write your trace statement.</p></div>
<p>Now, lets compile it and look at our .swf. You should just be looking at a blank white screen (as we haven&#8217;t added any objects to the stage). If you do something to affect the height or width of the .swf, by maximizing it or dragging it&#8217;s edge, you&#8217;ll notice two numbers are being displayed in the output window when you let go of the mouse. One number is the height and one is the width. Which one is which? Well, do you remember which one went in to the trace statement first?  Even if you do, you can see how this can be really confusing without a relevant label.</p>
<p>Let&#8217;s put in a label and recompile our .swf.</p>
<div id="attachment_802" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-802" title="step004" src="http://stairwellblog.com/wp-content/uploads/2009/03/step004.jpg" alt="Insert labels in to your trace statement." width="625" height="47" /><p class="wp-caption-text">Insert labels in to your trace statement.</p></div>
<p>As I mentioned earlier, quotations allow you to add text that the trace statement will simply display in the output window. The key difference (quotes vs. no quotes) being that it displays it in the output window without carrying out an actual operation (such as retrieving the height or width).</p>
<p>We simply concatenate (add a + sign) to the strings we want the label to be associated with (ie. &#8220;Stage Height = &#8221; + stage.stageHeight). We then label stage.stageWidth as well (&#8220;Stage Width =&#8221;  + stage.stageWidth). It&#8217;s good practice to separate statements that are being traced by a coma. Why? Because it helps make things consistent and a lot more readable (for you or someone else that may work on the project). It also helps formatting in the output window, as a coma will insert a space in between multiple statements.</p>
<p>You could theoretically concatenate string after string (&#8220;Stage Height = &#8221; + stage.stageHeight + &#8220;Stage Width =&#8221;  + stage.stageWidth) but your output is going to be Stage Height = 415Stage Width =572 instead of Stage Height = 415  Stage Width =572. It&#8217;s a small detail but a good note on best practices.</p>
<p>6.) Now we have a better understanding of what&#8217;s going on with the RESIZE event and our triggered function, lets do some layout basics (finally!).</p>
<p>The first step is adding a few lines of code to let flash know we want to turn off / on a few default properties of the stage. The point of a fluid layout is to use the height and width of the stage to establish new layout positions and NOT to zoom in out / skew the movie clips, buttons, etc. To ensure objects are going to slide (left / right, up / down, etc.) in position and not scale up or down in size, we need to turn scaling off. This will allow our objects to move according to the stage width / height and not scale (50%, etc) as the stage gets bigger or smaller. To do this, we&#8217;ll simply type the small code snippet below:</p>
<div id="attachment_803" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-803" title="step005" src="http://stairwellblog.com/wp-content/uploads/2009/03/step005.jpg" alt="Specify stage properties." width="625" height="19" /><p class="wp-caption-text">Specify stage properties.</p></div>
<p>Now, for our last bit of code before we start adding some elements to the stage&#8230;..</p>
<p>The final little piece of code we need to express is to let flash know that we always want our movie to align to the left of the browser window. This ensures things anchored to the far left will stay on the far left and not reposition if the .swf file contained in our HTML page were to move. To accomplish that we simply set the stage to align to the TOP_LEFT.</p>
<div id="attachment_804" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-804" title="step006" src="http://stairwellblog.com/wp-content/uploads/2009/03/step006.jpg" alt="Specify stage properties." width="625" height="17" /><p class="wp-caption-text">Specify stage alignment properties.</p></div>
<p>7.) Still with me? Now lets create objects to drop on to our stage. We&#8217;ll start by making 2 separate movie clips, both 80px by 80px.</p>
<p>They can be any shape you&#8217;d like but for this exercise, I&#8217;m just going to make some colored squares (one blue, one red). Take the Rectangle Tool (R) and draw a blue box and a red box. Convert each one to a movie clip. You can do this a number of ways (key board short cuts, etc) but for this exercise go Modify &gt; Convert To Symbol and then give them names of boxBlue and boxRed.</p>
<p>***An important note here&#8230;..make the registration point the top left corner (see image below). Why? Because it&#8217;s much more flexible (in my opinion) then just centering the registration point. It causes you to have to do a bit more math when resizing a centered object but I&#8217;ll explain why it&#8217;s worth it in the long run.</p>
<div id="attachment_772" class="wp-caption alignnone" style="width: 571px"><img class="size-full wp-image-772" title="step007" src="http://stairwellblog.com/wp-content/uploads/2009/03/step007.jpg" alt="Convert your vector squares to movieclips. " width="561" height="171" /><p class="wp-caption-text">Convert your vector squares to movieclips. </p></div>
<p>Now, click on the boxes on the stage and give them instance names of boxBlue and boxRed in the property inspector. This is so they can be referenced by the actionscript code we&#8217;ll write.</p>
<div id="attachment_773" class="wp-caption alignnone" style="width: 544px"><img class="size-full wp-image-773" title="step008" src="http://stairwellblog.com/wp-content/uploads/2009/03/step008.jpg" alt="Give your movieclips instance names. " width="534" height="145" /><p class="wp-caption-text">Give your movieclips instance names. </p></div>
<p>Just to make sure we&#8217;re all on the same page, your actions window should look like this:</p>
<div id="attachment_807" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-807" title="step009" src="http://stairwellblog.com/wp-content/uploads/2009/03/step009.jpg" alt="Double check your source code. " width="625" height="134" /><p class="wp-caption-text">Double check your source code. </p></div>
<p>8.) The first fluid alignment I&#8217;ll discuss is centering an instance. For this first example, lets use our boxRed movie clip.</p>
<p>Now is where a little basic math comes in. To find the center of anything, you simply divide the width and height by 2. In our case, we want to divide the width and height of the stage to find the middle point at which to center our boxRed movie clip. The main thing we want to accomplish is re-centering our boxRed movie clip when the stage is re-sized. To do this, lets place some code inside our (onResizeStage) function.</p>
<div id="attachment_808" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-808" title="step010" src="http://stairwellblog.com/wp-content/uploads/2009/03/step010.jpg" alt="Source code to center your boxRed mc. " width="625" height="79" /><p class="wp-caption-text">Source code to center your boxRed mc. </p></div>
<p>***You might notice the grayed out text above. If you don&#8217;t recognize why that is, it&#8217;s because I commented it out with two // so it would no longer continue to trace the height and width of the stage. You could remove it all together but it&#8217;s good practice to leave important trace statements intact, just in case you need to trouble shooot (again) later in the project.***</p>
<p>Go ahead and compile your flash movie. If you re size your .swf movie (or the web browser, depending on how you prefer to preview your flash files) you&#8217;ll notice that the boxRed movieclip will adjust as the browser adjusts and the boxBlue movieclip will simply stay put.</p>
<p>You might look at it and say, why does it not look centered? (If not, you may need to fine tune your eye for document layout. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) I&#8217;ll explain (and illustrate) why that is. If you remember, earlier in the tutorial we specified the registration point of our movie clip(s) as the top left of our vector shape. So dividing the stage width and height (and adjusting the x and y of our movieclip accordingly) will simply center the top left corner of our object on the stage (see the figure below).</p>
<div id="attachment_776" class="wp-caption alignnone" style="width: 528px"><img class="size-full wp-image-776" title="step011" src="http://stairwellblog.com/wp-content/uploads/2009/03/step011.jpg" alt="Centering result vs. expected outcome. " width="518" height="257" /><p class="wp-caption-text">Centering result vs. expected outcome. </p></div>
<p>The expected out come was (fig 2.) while our actual result was (fig 1.). Now, before you go rushing through your file to change the registration point (to be the center of our object) or re-align the vector object to the center of the movieclip&#8217;s stage, let me explain why doing that is not that great of an idea (in my humble opinion).</p>
<p>By making the registration point of a movieclip the top left, it allows a designer (or developer) to layout objects on a typical (x, y) axis. If you have a movieclip with several different elements embedded in it, your movieclip&#8217;s stage will function as the main flash stage would (with 0,0) being the (x,y) coordinate of the top left of the stage. Maybe this doesn&#8217;t seem like such a huge advantage but let me illustrate the point to really drive it home. The figure below shows how you would have to align a second movie clip if your registration point was in the center of your instance.</p>
<div id="attachment_777" class="wp-caption alignnone" style="width: 337px"><img class="size-full wp-image-777" title="step012" src="http://stairwellblog.com/wp-content/uploads/2009/03/step012.jpg" alt="Potential layout issues with a center registration point. " width="327" height="257" /><p class="wp-caption-text">Potential layout issues with a center registration point. </p></div>
<p>If you center your movieclip&#8217;s registration point, the (x,y) of your second element would be (-35, -35), instead of simply (5,5). I hope you can see how that could get incredibly confusing if you&#8217;re trying to attach objects at run time or trying to consistently produce precise spacing in your imbeded objects.</p>
<p>If you&#8217;d prefer to center the registration point of your objects, then please do so. There&#8217;s not really anything wrong with it but it&#8217;s just my personal preference that using a top left registration point is much more advantageous, especially once we start talking about other aspects of fluid layouts (scaling an elements width, scaling an elements height, etc, etc.). Just be prepared to potentially have to do some extra math if you&#8217;re centering your registration points. I can only make a suggestion on what I consider to be best practice&#8230;..in the end, do it whichever way you&#8217;re more comfortable with but keep in mind the rest of this tutorial (past centering objects) will not include math fixes for objects that have a centered registration point.</p>
<p>Ok, so the question is&#8230;..how do we fix it (create an offset so the object displays in the absolute middle of our window)? It&#8217;s pretty simple really.</p>
<p>As I explained earlier, you find the center of an object by dividing it&#8217;s width and height by 2. Our boxes are 80px by 80px. So we&#8217;ll divide 80 by two (in both cases) and get an X offset of 40 and a Y offset of 40. So, now on to the part some might find tricky&#8230;&#8230;applying it to our equation so we get the desired result.</p>
<p>Based on the basic principles of a top left registered (x,y) grid, if you add to the x and y numbers it will move it right on the stage and down&#8230;..if you subtract from the x and y numbers, it will shift your object left and up (which if you look at the illustrated figure above) is the desired result we are looking for. So, all we need to do is subtract 40 from the center of our stage.</p>
<p>With all that said, lets type:</p>
<div id="attachment_811" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-811" title="step013" src="http://stairwellblog.com/wp-content/uploads/2009/03/step013.jpg" alt="Add your offset." width="625" height="79" /><p class="wp-caption-text">Add your offset.</p></div>
<p>Now recompile your FLA and adjust the size of your flash movie.</p>
<p>You&#8217;ll notice we get a much more precise result and the movie clip doesn&#8217;t appear to be off-center (now that we have compensated for the x and y offset of registering the movieclip on the top left). Easy enough right?</p>
<p>The reason I recommend doing it this way is that in almost all cases, you&#8217;re going to want a movieclip registered in the top left for the other effects i&#8217;ll go over. It&#8217;s easier to compensate for it on only a centered object than to compensate for it in every other iteration / alignment. I hope that makes sense and if it doesn&#8217;t, you should see why later on (when we start adding some more alignment solutions to the project).</p>
<p>Let&#8217;s finish off centering up an object with this last tip&#8230;..</p>
<p>Some of you might be asking, why doesn&#8217;t the movieclip center when the .swf file first compiles? Well, hopefully you have already realized why (because it only assigns a new x and y value when the stage is re-sized) but if not, I&#8217;ll give a (very) brief explanation. Flash has to be told what to do. A program like flash is only as good as the directions a programmer gives it and if you don&#8217;t give it any, it&#8217;s not going to do anything. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  In this case, it&#8217;s just assigning a default (x,y) value for our boxes (i.e. where they are placed on the stage inside our FLA) because we didn&#8217;t give it any specific directions to do differently. Let&#8217;s fix that so our object not only realigns in the center of our window on re-size but starts there from the beginning.</p>
<p>All we need to do is grab the .x and .y equations we just wrote for our boxRed movieclip and paste them outside of our (onResizeStage) function, just below our stage.scaleMode amd stage.align instructions. This lets flash perform the equation when the movie first loads and also when the stage is re-sized.</p>
<div id="attachment_812" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-812" title="step014" src="http://stairwellblog.com/wp-content/uploads/2009/03/step014.jpg" alt="Make sure your code is both inside and outside of our equation." width="625" height="89" /><p class="wp-caption-text">Make sure your code is both inside and outside of our equation.</p></div>
<p>Now recompile your FLA and your boxRed starts in the middle and stays there as the browser / window re-sizes.</p>
<p>If your head hurts, I understand but try to bear with me or better yet, take a break and come back to this point. If you&#8217;re stuck or having trouble getting your code to work, here&#8217;s what your actions panel should look like:</p>
<div id="attachment_813" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-813" title="step015" src="http://stairwellblog.com/wp-content/uploads/2009/03/step015.jpg" alt="Double check your code." width="625" height="201" /><p class="wp-caption-text">Double check your code.</p></div>
<p>You&#8217;re probably thinking, 13 lines of code?! 13 lines of code!? I know, it can be somewhat frustrating that something so simple could take so long to explain but understanding the basic fundamentals of many of these concepts will apply across a multitude of other projects you are bound to take on (both willingly and unwillingly). Understanding the fundamentals of why something does (or doesn&#8217;t work) will really help you problem solve (on your own) down the road. In the end, figuring things out by yourself is one of the most rewarding aspects of programming.</p>
<p>With all that said, let the impatient crowd rejoice&#8230;..the next few examples will be much faster paced but I will be sure to hit on all side info relevant to how the concept works.</p>
<p>9.) The next fluid alignment we&#8217;ll touch on is adjusting the width on an object to the browsers / .swf files width. This is especially helpful when creating navigational elements, such as a background color that might sit just behind your nav text / buttons and scale full width to the browser.</p>
<p>This only takes 2 more lines of code (yay). In this case, we&#8217;ll grab our boxBlue and use it for this example. Position it on your stage at (0,0) and add the following code (one line for when the movie initializes and one line for when the stage / browser is resized&#8230;..just as we did with the boxRed movieclip):</p>
<div id="attachment_814" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-814" title="step016" src="http://stairwellblog.com/wp-content/uploads/2009/03/step016.jpg" alt="Adjusting an mc's width based on the stage's width." width="625" height="19" /><p class="wp-caption-text">Adjusting an mc&#39;s width based on the stage&#39;s width.</p></div>
<p>A friendly reminder. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Make sure you double check that your line of code appears both inside and outside of your (onResizeStage) function, just as we have done for all the other steps. If it doesn&#8217;t, copy and paste it in to the appropriate place.</p>
<p>The above concept is a simple one. We want the width of our blue box (boxBlue) to be the same as our stage. We calculate the width of the stage with the stage.stageWidth property and apply it to our box (boxBlue.width =  stage.stageWidth;). When you recompile your .swf, you&#8217;ll notice that the width of our blue boxes stretches with the stage.</p>
<p>10.) Next up, right justify.</p>
<p>We&#8217;re gonna have to make a new box for this one, as we want to retain what we&#8217;ve already done. Lets make another 80px by 80px box. This time, I&#8217;m going to make it Orange. Once you have made an orange box, convert it to a movieclip, top left justify it&#8217;s registration point and give it an instance name of boxOrange. Done? Lets write another small snippet of code (again, just 2 lines).</p>
<div id="attachment_815" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-815" title="step017" src="http://stairwellblog.com/wp-content/uploads/2009/03/step017.jpg" alt="Right justify an mc based on the stage's width." width="625" height="19" /><p class="wp-caption-text">Right justify an mc based on the stage&#39;s width.</p></div>
<p>Another friendly reminder. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  And yes, again! Make sure you double check that your line of code appears both inside and outside of your (onResizeStage) function, just as we have done for all the other steps. If it doesn&#8217;t, copy and paste it in to the appropriate place.</p>
<p>Here&#8217;s where the left registration point comes in handy again. To position our moveiclip to float on the right side of our stage, we simply use the stage.stageWidth property and subtract the width of our object (80px). That 80px offset simply bumps our object 80 pixels to the left of the far right edge of the stage. I hope all this is starting to click in your head now and you&#8217;re thinking of different ways you can position / anchor things on the stage.</p>
<p>11.) The last alignment solution I&#8217;m going to go over is aligning something to the bottom of the browser (i.e. something like a footer).</p>
<p>Lets make another 80px by 80px box. This time, I&#8217;m going to make it Green. Once you have made an green box, convert it to a movieclip, top left justify it&#8217;s registration point and give it an instance name of boxGreen. Give it a x value of 0, so that it aligns to the far left of our stage.</p>
<p>As a side not, I would start getting in to the habit of doing this programmaticly by simply typing boxGreen.x = 0; I decided to skip those steps in an effort to keep this tutorial as lean and mean as possible (but just wanted to mention it somewhere). I would guess most of you are already doing such things (without instruction) but I wanted to make sure I gave it a brief plug.</p>
<p>Again, once you understand the basic principles of what we&#8217;re doing right now, you should find it fairly easy to not only understand these basic concepts but also to implement more advanced ones in your projects.</p>
<p>To align something to the bottom of the movie and stretch it to to the width of the stage, we&#8217;re only going to need 2 lines of code. 1 to adjust the width and 1to adjust it&#8217;s y position in relation to the stage&#8217;s height. Easy enough right?</p>
<p>Let&#8217;s crank out the last few lines of code (I know, it&#8217;s about time) for this!</p>
<div id="attachment_816" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-816" title="step018" src="http://stairwellblog.com/wp-content/uploads/2009/03/step018.jpg" alt="Aligning an mc to the bottom of the browser window." width="625" height="37" /><p class="wp-caption-text">Aligning an mc to the bottom of the browser window.</p></div>
<p>Psst. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Make sure your code appears both inside and outside the function. Sorry, I had to. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Congratulations! Not because you&#8217;re done but because this (next short info blurb) is the last small explanation you&#8217;ll have to plod through. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I have confidence that most of you thoroughly understand how this is now working but just in case there is someone out there looking for this last bit of instruction, I&#8217;ll explain why I&#8217;m doing what I am to get our desired result.</p>
<p>The stage.stageHeight property returns the size of our stage, as it appears in the browser. Because we want our object to hug / appear at the very bottom of the stage, we simply use that number and subtract the height of our object. Why do we subtract? Because in a traditional (x,y) grid you subtract to move up, add to move down&#8230;..because our object is justified in the top left corner, we need to subtract it&#8217;s height or it will be aligned at the bottom of the stage, out of view. If you are having trouble understanding this concept, just remove the (-80) on the equation and recompile it.  It will appear as the object disappeared but really it&#8217;s just aligning the leading top edge of the movieclip to the very bottom of the stage / browser window (fig 2.). See the figure below for a visual representation. The colored red area is off of the visible part of the stage inside the browser.</p>
<div id="attachment_862" class="wp-caption alignnone" style="width: 528px"><img class="size-full wp-image-862" title="step021" src="http://stairwellblog.com/wp-content/uploads/2009/03/step021.jpg" alt="-80 offset explained." width="518" height="257" /><p class="wp-caption-text">-80 offset explained.</p></div>
<p>12.) If you&#8217;ve got to this point and didn&#8217;t get everything to work, here&#8217;s the final code sample posted below. Hopefully you didn&#8217;t have any problem following along but if you did, compare your actions panel to the one below and see where you got tripped up.</p>
<div id="attachment_817" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-817" title="step019" src="http://stairwellblog.com/wp-content/uploads/2009/03/step019.jpg" alt="Final source code." width="625" height="338" /><p class="wp-caption-text">Final source code.</p></div>
<p>13.) The last step in all of this is changing the height and width listed in our HTML file. Flash publishes a pixel by pixel output in the HTML file it spits out that relates to the document size listed in our FLA file. Because we want the stage to be equal to the height and width of the browser we just need to make one quick change. Instead of having our height and width be in a pixel format, we simply want it to display to 100% of the browsers width and height.</p>
<p>Our specified height and width appears THREE times on the page, so don&#8217;t miss one set&#8230;..it could cause problems down the road depending on what browser the end user is viewing your project on. If you need specific directions you&#8217;ll find it once in the AC_FL_RunContent function and twice in the object id tag.</p>
<div id="attachment_872" class="wp-caption alignnone" style="width: 635px"><img class="size-full wp-image-872" title="step020" src="http://stairwellblog.com/wp-content/uploads/2009/03/step020.jpg" alt="Change the height and width settings in your HTML doc to 100%." width="625" height="265" /><p class="wp-caption-text">Change the height and width settings in your HTML doc to 100%.</p></div>
<p>One last fix&#8230;&#8230;&#8230;.</p>
<p>By default, a margin of 10 pixels is sometimes assumed. To turn those margins off, so our file hugs the endpoints of our browser, we just need a short piece of CSS. Include this just before the close of your HTML page&#8217;s head tag:</p>
<pre name="code" class="css">

&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
--&gt;
&lt;/style&gt;
</pre>
<p>If you&#8217;re having trouble with this part, just view the HTML source in the working link posted below.</p>
<p>For a working example of how your file should look, <a href="http://www.billupsdesign.com/labs/tutorials/fluidFlash/" target="_blank">click here to view my final tutorial .swf file.</a> Resize the window and our objects are sliding / scaling as they should. hopefully your file looks exactly the same! If not check back soon (see my p.s. note) as this will most likely be an ongoing tutorial subject that I update with newer blog entries.</p>
<p>Cheers! and as always, happy flashing!</p>
<p>Ryan</p>
<p>P.S. If there&#8217;s a large request for source files, I will post them a few days after the blog has gone live. I&#8217;ll also swap out the images with source code&#8230;&#8230;..BUT until then, invest in your professional skill set and learn how and why you&#8217;re doing the things you are. <img src='http://stairwellblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>EDIT: Commented source file can be <a href="http://www.billupsdesign.com/labs/tutorials/fluidFlash/as3_fluidLayout.fla.zip">downloaded here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2009/03/creating-fluid-as3-flash-layouts-the-basics/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Another profitable no-brainer from Steve Krug</title>
		<link>http://stairwellblog.com/2009/02/usability-testing-by-steve-krug/</link>
		<comments>http://stairwellblog.com/2009/02/usability-testing-by-steve-krug/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 11:10:23 +0000</pubDate>
		<dc:creator>ted</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://stairwellblog.ihsystem.com/?p=407</guid>
		<description><![CDATA[Steve Krug discusses doing usability testing with 4-6 people about once a month can lead to solving problems typically yield big efficiencies and return on investment.  We wholeheartedly agree, Steve!]]></description>
			<content:encoded><![CDATA[<p><embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="600" height="385" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9wZWFjaHBpdF90dl9mb3JfZGVzaWduZXJzLzUwX3BwZF8wMDQuZmx2P3Jzc19mZWVkaWQ9MTQ5MyZ4bWx2ZXJzPTI=&#038;w=600&#038;t=http://tv.adobe.com/#vi+f1493v1621&#038;h=385"></embed></p>
<p>Steve Krug discusses doing usability testing with 4-6 people about once a month can lead to solving problems typically yield big efficiencies and return on investment.  We wholeheartedly agree, Steve!</p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2009/02/usability-testing-by-steve-krug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unlocking the Rubik Genome</title>
		<link>http://stairwellblog.com/2009/01/unlocking-the-rubik-genome/</link>
		<comments>http://stairwellblog.com/2009/01/unlocking-the-rubik-genome/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 18:49:50 +0000</pubDate>
		<dc:creator>charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://stairwellblog.com/?p=363</guid>
		<description><![CDATA[<div class="imgWrap alignleft"><a href="http://www.youtube.com/watch?v=HNwx0nbgm7M"><img src="http://stairwellblog.ihsystem.com/wp-content/uploads/2009/01/rubiks-sm2.jpg" alt="Rubik&#039;s Cube Solver for the iPhone" title="Rubik's Cube iPhone App" width="160" height="230" class="size-full wp-image-398" /></a></div>
<p>iPhone apps are proliferating like so many bunnies in a vast  green meadow. To this point, the overwhelming majority of these new apps are for entertainment, utility or novelty. However, commercial applications are only around the corner. Here at Billups Design, we&#8217;re working on commercial applications for the iPhone that our clients and prospects can procure to advance their online communications. Until that time when private enterprise awakens to the uses of iPhone apps, we&#8217;ll just have to have fun using our phones for things like this: <a title="Rubik's Cube Solver for the iPhone" href="http://i.gizmodo.com/5141731/iphone-rubik-cube-solver-is-pure-genius" target="_blank">The Rubik Cube Solver</a>.</p>
]]></description>
			<content:encoded><![CDATA[<div class="imgWrap alignleft"><a href="http://www.youtube.com/watch?v=HNwx0nbgm7M"><img src="http://stairwellblog.ihsystem.com/wp-content/uploads/2009/01/rubiks-sm2.jpg" alt="Rubik&#039;s Cube Solver for the iPhone" title="Rubik's Cube iPhone App" width="160" height="230" class="size-full wp-image-398" /></a></div>
<p>iPhone apps are proliferating like so many bunnies in a vast  green meadow. To this point, the overwhelming majority of these new apps are for entertainment, utility or novelty. However, commercial applications are only around the corner. Here at Billups Design, we&#8217;re working on commercial applications for the iPhone that our clients and prospects can procure to advance their online communications. Until that time when private enterprise awakens to the uses of iPhone apps, we&#8217;ll just have to have fun using our phones for things like this: <a title="Rubik's Cube Solver for the iPhone" href="http://i.gizmodo.com/5141731/iphone-rubik-cube-solver-is-pure-genius" target="_blank">The Rubik Cube Solver</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stairwellblog.com/2009/01/unlocking-the-rubik-genome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
