<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dispatchEvent()™ &#187; Site-seeing</title>
	<atom:link href="http://dispatchevent.org/category/site-seeing/feed/" rel="self" type="application/rss+xml" />
	<link>http://dispatchevent.org</link>
	<description>Collective thoughts on the Flash Platform, iOS, Unity, and any other technology we use.</description>
	<lastBuildDate>Mon, 23 Apr 2012 19:07:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>New Prius Site is Hot! (Also, it uses KitchenSync)</title>
		<link>http://dispatchevent.org/mims/new-prius-site-is-hot-also-it-uses-kitchensync/</link>
		<comments>http://dispatchevent.org/mims/new-prius-site-is-hot-also-it-uses-kitchensync/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 19:54:59 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Site-seeing]]></category>

		<guid isPermaLink="false">http://dispatchevent.org/?p=580</guid>
		<description><![CDATA[The new Prius site by Saatchi &#38; Saatchi and Bad Assembly looks awesome, has great sound design and feels really smooth. Oh, the car looks pretty hot too. I caught word that KitchenSync was used for some of the animation! *Blush*]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.toyota.com/vehicles/minisite/prius/"><img class="alignnone" src="http://surfstation.com:7500/dev1/0/000/001/0000001280.fid" alt="" width="450" height="228" /></a><br />
The <a href="http://www.toyota.com/vehicles/minisite/prius/">new Prius site</a> by <a href="http://saatchila.com/">Saatchi &amp; Saatchi</a> and <a href="http://badassembly.com/">Bad Assembly</a> looks awesome, has great sound design and feels really smooth. Oh, the car looks pretty hot too.</p>
<p>I caught word that <a href="http://kitchensynclib.googlecode.com/">KitchenSync</a> was used for some of the animation! <span style="color: #ff00ff;">*Blush*</span></p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/new-prius-site-is-hot-also-it-uses-kitchensync/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lolz Days of XMas</title>
		<link>http://dispatchevent.org/mims/lolz-days-of-xmas/</link>
		<comments>http://dispatchevent.org/mims/lolz-days-of-xmas/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 20:51:10 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Site-seeing]]></category>

		<guid isPermaLink="false">http://dispatchevent.org/?p=528</guid>
		<description><![CDATA[A few things are right here: 1. Making something creative every day. 2. Cute animals 3. Viral self-promotion 4. Lolz LLC is an awesome compnany. lolz days of xmas]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lolzllc.com/xmas/?utm_medium=email&#038;utm_source=Email+marketing+software&#038;utm_content=472166350&#038;utm_campaign=December+2008+_+dynju"><img src="http://dispatchevent.org/wp-content/uploads/2008/12/picture-11.png" alt="lolz" title="lolz" class="alignnone size-full wp-image-529" /></a></p>
<p>A few things are right <a href="http://www.lolzllc.com/xmas/?utm_medium=email&#038;utm_source=Email+marketing+software&#038;utm_content=472166350&#038;utm_campaign=December+2008+_+dynju">here</a>:</p>
<p>1. Making something creative every day.<br />
2. Cute animals<br />
3. Viral self-promotion<br />
4. <a href="http://lolzllc.com">Lolz LLC</a> is an awesome compnany.</p>
<p><a href="http://www.lolzllc.com/xmas/?utm_medium=email&#038;utm_source=Email+marketing+software&#038;utm_content=472166350&#038;utm_campaign=December+2008+_+dynju">lolz days of xmas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/lolz-days-of-xmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Performance comparison tool</title>
		<link>http://dispatchevent.org/mims/as3-performance-comparison-tool/</link>
		<comments>http://dispatchevent.org/mims/as3-performance-comparison-tool/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 18:42:55 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Site-seeing]]></category>

		<guid isPermaLink="false">http://dispatchevent.org/?p=523</guid>
		<description><![CDATA[I ran across an interesting performance comparison tool at businessintelligence.me This could be very useful for code optimization and for a general understanding of what&#8217;s going on behind the scenes. Perhaps the most striking comparisons in this tool are the ones that compare Vectors to Arrays. Looping Vectors appears to be about 60x faster than [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across <a href="http://businessintelligence.me/projects/performance_tester/performanceTester.html">an interesting performance comparison tool at businessintelligence.me</a></p>
<p>This could be very useful for code optimization and for a general understanding of what&#8217;s going on behind the scenes.</p>
<p><a href="http://businessintelligence.me/projects/performance_tester/performanceTester.html"><img src="http://dispatchevent.org/wp-content/uploads/2008/12/performacetool.png" alt="performace comparison tool" title="performace comparison tool" class="alignnone size-full wp-image-524" /></a></p>
<p>Perhaps the most striking comparisons in this tool are the ones that compare <a href="http://livedocs.adobe.com/flex/gumbo/langref/Vector.html">Vectors</a> to Arrays. Looping Vectors appears to be about 60x faster than looping through Arrays. Someone recently asked me when you would want to use Vectors and my response was whenever you possibly can. And if you think about it, the times which you need an untyped Array are (should be) almost never.</p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/as3-performance-comparison-tool/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Eagle Eye Free Fall</title>
		<link>http://dispatchevent.org/mims/eagle-eye-free-fall/</link>
		<comments>http://dispatchevent.org/mims/eagle-eye-free-fall/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 19:27:55 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[phone]]></category>

		<guid isPermaLink="false">http://dispatchevent.org/?p=449</guid>
		<description><![CDATA[&#8230;was a pretty cool example of integrating flash, video, and the real world. It still didn&#8217;t make me want to see the movie though. http://eagleeyefreefall.com/]]></description>
			<content:encoded><![CDATA[<p><a href="http://eagleeyefreefall.com"><img class="alignnone size-medium wp-image-450" title="Eagle Eye - Free fall" src="http://dispatchevent.org/wp-content/uploads/2008/10/picture-1-300x70.png" alt="" width="300" height="70" /></a></p>
<p>&#8230;was a pretty cool example of integrating flash, video, and the real world. It still didn&#8217;t make me want to see the movie though.</p>
<p><a href="http://eagleeyefreefall.com/">http://eagleeyefreefall.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/eagle-eye-free-fall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tweening timeline animations with KitchenSync</title>
		<link>http://dispatchevent.org/mims/tweening-timeline-animations-with-kitchensync/</link>
		<comments>http://dispatchevent.org/mims/tweening-timeline-animations-with-kitchensync/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 23:31:33 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[physics & motion]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Videogames]]></category>
		<category><![CDATA[KitchenSync]]></category>

		<guid isPermaLink="false">http://dispatchevent.org/?p=284</guid>
		<description><![CDATA[One of the new features in KitchenSync 1.5 is the ability to tween animations on a MovieClip&#8217;s timeline&#8230; and I&#8217;m not just talking about gotoAndPlay(), I&#8217;m talking about controlling the starting and stopping points, speed, and easing functions of an animation on the timeline with code. It does this by incrementally controlling the current frame [...]]]></description>
			<content:encoded><![CDATA[<p>One of the new features in <a href="http://dispatchevent.org/mims/kitchensync-v1-5/">KitchenSync 1.5</a> is the ability to tween animations on a MovieClip&#8217;s timeline&#8230; and I&#8217;m not just talking about gotoAndPlay(), I&#8217;m talking about controlling the starting and stopping points, speed, and easing functions of an animation on the timeline with code. It does this by incrementally controlling the current frame number of the MovieClip using a <a href="http://as3lib.org/kitchensync/docs/api/org/as3lib/kitchensync/action/KSTween.html">KSTween</a> and a special <a href="http://as3lib.org/kitchensync/docs/api/org/as3lib/kitchensync/action/tweentarget/ITweenTarget.html">ITweenTarget</a> (a class used to control the values of an object) called <a href="http://as3lib.org/kitchensync/docs/api/org/as3lib/kitchensync/action/tweentarget/TimelineController.html"><strong>TimelineController</strong></a>.</p>
<p>Take this FLA animation.</p>
<p><a href="http://dispatchevent.org/wp-content/uploads/2008/07/timelineAnimationStill.png"><img src="http://dispatchevent.org/wp-content/uploads/2008/07/timelineAnimationStill.png" alt="MovieClip animation" /></a></p>
<p>As you can see, there is a simple animation using a guide layer and labels on the key frames.</p>
<p><span id="more-284"></span></p>
<p>The following SWF uses KitchenSync to control the same ball animation. As you can see, the duration and easing functions of the animation can be controlled. You can even animate backwards!</p>
<p><a href="/wp-content/uploads/2008/07/FlashIntegrationTest.swf">See it in action.</a></p>
<p>The source that controls this is here.</p>
<pre lang="actionscript3">package {
	import flash.display.MovieClip;

	import org.as3lib.kitchensync.KitchenSync;
	import org.as3lib.kitchensync.action.*;
	import org.as3lib.kitchensync.action.tweentarget.*;
	import org.as3lib.kitchensync.easing.Bounce;
	import org.as3lib.kitchensync.easing.Cubic;
	import org.as3lib.kitchensync.easing.Linear;
	import org.as3lib.kitchensync.easing.Oscillate;

	/**
	*	Demos the TimelineController which controls the animation of a MovieClip's timeline.
	*/
	public class FlashIntegrationTest extends MovieClip
	{
		protected var test1:MovieClip;

		public function FlashIntegrationTest()
		{
			super();
			// initialize kitchensync.
			KitchenSync.initialize(this, "1.5");

			// add a movieclip from the library
			test1 = MovieClip(new AnimationTest1());
			addChild(test1);

			// define the start and end frame with strings or ints or FrameLabel's
			var startLabel:* = "start";
			var endLabel:* = "end";

			// set up the TimelineController tween target.
			var tweenTarget:TimelineController = new TimelineController(test1, startLabel, endLabel);
			// Animate the ball with a linear ease.
			var tween:KSTween = KSTween.newWithTweenTarget(tweenTarget, "1s", 0, Linear.ease);

			// animate the ball backwards with a bounce tween
			var tween2:KSTween = tween.cloneReversed();
			tween2.duration = "4s";
			tween2.easingFunction = Bounce.easeOut;
			tween2.addTrigger(tween);

			// animate the ball with an oscillator
			var tween3:KSTween = KSTween.newWithTweenTarget(tweenTarget, "10m", "1s", Oscillate.sine);
			tween3.easingMod1 = 0.3;
			tween3.addTrigger(tween2);

			// start the animations
			tween.start();
		}

	}
}</pre>
<p>Pretty cool huh? We&#8217;re creating a new TimelineController and setting the boundaries of the animation then passing it to a new KSTween object. Each of the three tweens use different parameters and are triggered by the end of the one before it.</p>
<p>You can <a href="http://dispatchevent.org/wp-content/uploads/2008/07/timelineControllerDemo.zip">download the entire thing</a> and play around with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/tweening-timeline-animations-with-kitchensync/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IA Design Patterns</title>
		<link>http://dispatchevent.org/mims/ia-design-patterns/</link>
		<comments>http://dispatchevent.org/mims/ia-design-patterns/#comments</comments>
		<pubDate>Tue, 20 May 2008 01:00:12 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://blog.extends.eventdispatcher.org/?p=274</guid>
		<description><![CDATA[Here&#8217;s a site with some cool IA patterns. Nice One If you liked that, there&#8217;s more at Yahoo&#8217;s Design Pattern Library. This link is from Information Aesthetics&#8230; aaand there&#8217;s more like this on Ethan Eismann&#8217;s blog who is incidentally an Adobe Thermo Developer.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a site with some cool IA patterns.<br />
<a href="http://niceone.org/infodesign/">Nice One</a><br />
If you liked that, there&#8217;s more at <a href="http://developer.yahoo.com/ypatterns/">Yahoo&#8217;s Design Pattern Library</a>.<br />
This link is from <a href="http://infosthetics.com/">Information Aesthetics</a>&#8230; aaand there&#8217;s more like this on <a href="http://eismann-sf.com/news">Ethan Eismann&#8217;s blog</a> who is incidentally an <a href="http://labs.adobe.com/wiki/index.php/Thermo">Adobe Thermo</a> Developer.</p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/ia-design-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zamak&#8217;s blobby friends</title>
		<link>http://dispatchevent.org/mims/zamaks-blobby-friends/</link>
		<comments>http://dispatchevent.org/mims/zamaks-blobby-friends/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 19:09:58 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[OMGWTFBBQ]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=256</guid>
		<description><![CDATA[French 3d artist Zamak is totally amazing. If I wasn&#8217;t convinced that I suck at 3D modeling I would make stuff like this, but fortunately, i&#8217;m still good at looking at it. Zamak Blog Zamak&#8217;s Flash Site]]></description>
			<content:encoded><![CDATA[<p><a href='http://mimswright.com/blog/?attachment_id=257' rel='attachment wp-att-257' title='Zamak'><img src='http://mimswright.com/blog/wp-content/uploads/2008/04/picture-1.jpg' alt='Zamak' /></a><br />
French 3d artist Zamak is totally amazing. If I wasn&#8217;t convinced that I suck at 3D modeling I would make stuff like this, but fortunately, i&#8217;m still good at looking at it.<br />
<a href="http://www.zamak.fr/">Zamak Blog</a><br />
<a href="http://www.zamak.fr/flash/">Zamak&#8217;s Flash Site</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/zamaks-blobby-friends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good Websites have Good Content</title>
		<link>http://dispatchevent.org/mims/good-websites-have-good-content/</link>
		<comments>http://dispatchevent.org/mims/good-websites-have-good-content/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 09:01:24 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[Videogames]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=217</guid>
		<description><![CDATA[Tonight I wanted to check out some information about a video game so I turned to a site that both Roger and I worked on while at Schematic &#8211; Game Invasion. I think this site is great but I&#8217;m not here to toot my own horn. We built this with Flash 8 in under 2 [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight I wanted to check out some information about a video game so I turned to a site that both Roger and I worked on while at Schematic &#8211; Game Invasion. I think this site is great but I&#8217;m not here to toot my own horn. We built this with Flash 8 in under 2 months and it certainly isn&#8217;t technically perfect. However, even though this site is two years old and takes a while to load, I still really enjoy <em>using</em> it. I started wondering why.<br />
The reason is simple &#8211; content (the graphic design is pretty good too). What makes this site great was not the work we did but the incredible amount of really high-quality content. There are HD videos, big crisp graphics and something new every time I visit. There are other sites that I&#8217;ve spent way more time making perfect that I&#8217;d never look at again since there&#8217;s nothing really worth seeing.<br />
Another example is the NBC episode player. It&#8217;s buggy as hell and the ads are annoying. I much prefer the ABC player. However, I really like the show &#8216;Heroes&#8217; so I pretty much forget about those things in the end.<br />
What I&#8217;m trying to say here is that technical brilliance and good design are great but what will keep people coming back to your site is some really great content so if you&#8217;re making a website make that your focus.</p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/good-websites-have-good-content/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Weak vs Strong References in AS3</title>
		<link>http://dispatchevent.org/mims/creating-weak-references-in-as3/</link>
		<comments>http://dispatchevent.org/mims/creating-weak-references-in-as3/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 11:27:37 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Greatest Hits]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[Tips, Tricks, and Hacks]]></category>
		<category><![CDATA[Videogames]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=213</guid>
		<description><![CDATA[For those of you not familiar with the concept, a weak-reference is a reference to an object that will not hold the linked object in memory when that object is garbage collected. There are only two ways to create a weak reference in AS3. The first is with the IEventDispatcher.addEventListener() method which allows you to [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you not familiar with the concept, a <a href="http://gskinner.com/blog/archives/2006/07/as3_weakly_refe.html">weak-reference</a> is a reference to an object that will not hold the linked object in memory when that object is garbage collected.</p>
<p>There are only two ways to create a weak reference in AS3. The first is with the <code>IEventDispatcher.addEventListener()</code> method which allows you to create a weak link between the dispatcher and the listener. To quote the AS3 Bible:</p>
<blockquote><p>ActionScript 3.0 introduces the concept of weak and strong memory references. Normally, an object will be garbage collected if there are no references to the object. That is, when no objects are using a variable, it gets thrown out. Weak references allow you to reference an object but the object will still be eligible for garbage collection unless another object holds a strong reference to the object. By setting the [<code>addEventListener()</code> method's] <code>useWeakReference</code> flag to true, you will create a weak link between the event broadcaster and the event listener. That way, if an dispatcher is deleted while there are still listeners attached, the weak reference will allow it to be garbage collected. This helps to prevent memory leaks.</p></blockquote>
<p>The other way is with the objects used as keys in a <code>Dictionary</code> object.</p>
<p>ActionScript, unlike many other languages, does not have a way to explicitly remove an object from memory. Instead it waits until all references to an object are removed and then auto-deletes it. Therefore, an object will continue to stay in memory if all strong references aren&#8217;t removed.</p>
<p>Below is an example of how strong-references hold an object in memory. If you&#8217;d like to try this out, copy the below text into a file called StrongReferencesExample.as</p>
<pre lang="actionscript3">package {
	import flash.display.Sprite;

	public class StrongReferencesExample extends Sprite {
		public function StrongReferencesExample() {
			// create a new object called dog. Add it to the first leash object
			// and make leash2 a copy of leash 1.
			var leash1:Object = new Dog();
			var leash2:Object = leash1;

			// tracing both leashes will show that they hold a reference to the Dog
			trace(leash1); // [object Dog]
			trace(leash2); // [object Dog]

			// deleting the dog from the first leash will not remove it from the second leash
			// even though we originally set leash2 equal to leash1
			leash1 = null;
			trace(leash1); // null
			trace(leash2); // [object Dog]

			// The object (dog) will not be free until all of the references to it (leashes) are broken.
			leash2 = null;
			trace(leash1); // null
			trace(leash2); // null
		}
	}
}
// Define a simple Dog class within the same file.
class Dog {}
</pre>
<p><a href="http://www.bigroom.co.uk/about/richardlord">Richard Lord</a> over at Big Room Games has <a href="http://www.bigroom.co.uk/blog/create-your-own-weak-references-in-actionscript-3">an interesting article</a> on hacking AS3 to allow you to create weak-references to objects. The hack is pretty decent but lacks a few things I&#8217;d like to see like strong typing at compile-time or a more refined &#8216;memory manager&#8217; type functionality. However, I tried implementing both of these and came up empty handed. If you can think of a way to make this strong-typed, I&#8217;ll give you a candy bar.</p>
<p>Using the <code>WeakReference</code> hack could be useful if you want to make sure that an object will not stay in memory if you forget to delete all references to it. However, keeping track of your objects and practicing good memory management is a much better solution and hacks like this one should be saved for special cases where tracking use of an object becomes difficult or impractical.</p>
<p>Thanks to Alex for the link!</p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/creating-weak-references-in-as3/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Napkintop web design for maximum impact</title>
		<link>http://dispatchevent.org/mims/napkintop-web-design-for-maximum-impact/</link>
		<comments>http://dispatchevent.org/mims/napkintop-web-design-for-maximum-impact/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 23:11:08 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Client-side]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=203</guid>
		<description><![CDATA[This link is an oldie but a goodie. It has helped me remember to KISS countless times and to focus on the needs of users when designing sites. Check it out. An Introduction to Using Patterns in Web Design [37 Signals]]]></description>
			<content:encoded><![CDATA[<p>This link is an oldie but a goodie. It has helped me remember to KISS countless times and to focus on the needs of users when designing sites. Check it out.</p>
<p><a href="http://www.37signals.com/papers/introtopatterns/">An Introduction to Using Patterns in Web Design</a> [<a href="http://www.37signals.com">37 Signals</a>]<br />
<a href="http://www.37signals.com/papers/introtopatterns/"><img src="http://www.37signals.com/papers/introtopatterns/whole-1.gif" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/napkintop-web-design-for-maximum-impact/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blood, Sweat, Tears, but Mostly Cupcakes</title>
		<link>http://dispatchevent.org/roger/blood-sweat-tears-but-mostly-cupcakes/</link>
		<comments>http://dispatchevent.org/roger/blood-sweat-tears-but-mostly-cupcakes/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 06:35:49 +0000</pubDate>
		<dc:creator>Roger Braunstein</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Site-seeing]]></category>

		<guid isPermaLink="false">http://www.partlyhuman.com/blog/roger/blood-sweat-tears-but-mostly-cupcakes</guid>
		<description><![CDATA[These are some of the things that went into the making of the new schematic.com site, which has finally been released in public beta. Yeah, yeah, you found a bug, I suck, you&#8217;ve never been so offended in your life, what a waste of time, I get it. Go file a report. I won&#8217;t accept [...]]]></description>
			<content:encoded><![CDATA[<p>These are some of the things that went into the making of the new <a href="http://www.schematic.com/">schematic.com</a> site, which has finally been released in public beta. Yeah, yeah, you found a bug, I suck, you&#8217;ve never been so offended in your life, what a waste of time, I get it. Go <a href="mailto:site@schematic.com?subject=Bug Report">file a report</a>. I won&#8217;t accept comments on bugs here.</p>
<p>Anyway, I worked on this site for about the last six months of my tenure at Schematic. It&#8217;s all AS3, with no Flex. I took the designs and features that had been built up over the last year, during which the company had aborted several attempts to build the vastly ambitious site, and assembled a schedule, tasks, a feasible set of functionality, a general approach, a process to follow, and an architecture, and then set to work. I was joined in my development by two great developers, <a href="http://specialrelativity.org/">Michael Avila</a> and <a href="http://jeffyamada.com/">Jeff Yamada</a>, who saw the site through to the end, and who made it possible for me to take time to write the <a href="http://partlyhuman.com/books/">AS3 bible</a> while working on the site. But before I get into thanking everyone&#8230;<br />
<span id="more-175"></span><br />
There&#8217;s some fun stuff going on inside and outside of the site. First off, it&#8217;s completely CMS driven. There&#8217;s something like 30 templates we built, using quite a few elements. In the CMS, you just pick out a template, fill it up with your images, text, backgrounds, video, animations, feeds, and links. Then you can take that page and stack it up with other pages, or drag it anywhere on the grid. Call me a hypocrite, but I think the number one best feature of the site is that there&#8217;s a fully functional, fully accessible <a href="http://www.schematic.com/?html=true">HTML site</a> behind it with almost 100% content parity. The HTML site works great on phones, it looks fantastic thanks to genius <a href="http://www.deathoffield.com/">Patrick Phegley</a> and it&#8217;s super spiderable. Now, when spiders pick up links to these deep HTML pages, there&#8217;s javascript magic by <a href="http://doctyper.com/">Richard Hererra</a> that works with <a href="http://www.asual.com/swfaddress/">SWFAddress</a> that will bump your HTML path into an anchor path, bring you back to the main page with the flash embed, and pass along that path back into the Flash, allowing you to pass links back and forth between the HTML site and the Flash site seamlessly. Of course, it also has bookmarking, deep-linking, and back/forward functionality.</p>
<p>So each template has an HTML representation and a Flash one. The Flash templates are built out in Flash, using elements with a visible stage presence, so without modifying code, nondevelopers can rearrange, resize, shift, and restructure existing templates, or create new ones. There were some tricks I developed to deal with templates rooted in DisplayObjects, particularly utilities converting runtime instances into class factories &#8212; so you can drop in one element, preview it visually in the authoring environment, and instead of populating it directly, use it as a template to fill out as many of those elements as required. Another nice utility that I couldn&#8217;t have done without was <tt>getChildByType()</tt>, which reduced my dependence on instance names in the template sprites, along with the DisplayListIterator Michael built.</p>
<p>Another utility I created along the way that proved invaluable was an implementation of asynchronous tokens, which gave us the ability to admit the realities of asynchronicity in the type system itself (a function returns AsynchronousTokens when it&#8217;s asynchronous, and the returned token acts as a Schrodinger&#8217;s cat until the operation completes), and the ability to cut through tons of dependencies that would have otherwise crippled us. With composite asynchronous tokens, we could group sets of asynchronous tasks in a single task, waiting on arbitrarily complex tasks without any care for what was occurring, only for its result. This opened the door to a lot of efficient, lazy loading and kept my architecture loose.</p>
<p>In addition to this, a set of small semaphore implementations I wrote helped keep states from complicating things. Instead of an <tt>enabled</tt> boolean accessor, often-used items would have a public semaphore, which could broadcast when it becomes available or unavailable, and be checked out. One implementation gave you a token when you checked it out, allowing you to pass the baton between unrelated tasks, calling <tt>release()</tt> on the lock token itself rather than trying to find where it came from. Another implementation tied the semaphore to an asynchronous token: the semaphore remains locked as long as the asynchronous process is active. This is really invaluable for navigations and animations that shouldn&#8217;t be interrupted.</p>
<p>We have a lot of instances in the site of a holy trinity of classes: flippers, transitions, and layouts. Flippers are a nice and simple abstraction of any kind of selectable set. Often they have both a flipper and a flippee, such as the media players, where the flipper is the row of photo icons, and the flipee (ok, <tt>FlippableCollection</tt>) is a view stack of images. Layouts allow you to flow together elements and control their display, and transitions, you can guess what they do. These seem a bit flex-ish but I approached them in an extremely low-dependency, lightweight fashion. Thus, we build up complex functionality by slowly seeping in features up the inheritance chain, pulling in interfaces that define the additional functionality. So for example, we have a PageStack, which is just a view stack, then a TransitioningPageStack, which uses an ITransition between showing pages, then we have a PageFlippableCollection, which is a TransitioningPageStack that implements IFlippableCollection (bringing in the idea of pages as flipper fodder). You can see these PageFlippableCollections in the pages of job descriptions and the pages of case studies. Also, you can see them in the news and accolades sections, but here instead of the pages being powered by a text field paginator, they&#8217;re powered by a column layout. Both of these just spit out IIterators of pages for the PageStacks to consume.</p>
<p>We use a lot more fun tricks that I would like to cover in more detail later. Mostly we do a lot of juggling between bitmap caches and display lists. Display lists take up CPU and memory, bitmapdata takes up a lot of memory, and the thumbnails of the pages loaded in externally take up little CPU and little memory, so while downloading a bunch of those thumbnails takes a bit of time, we have big fat broadband connections now, and it helps be able to run the site, while I play a juggling game, showing you real pages, dynamically generated snapshots, and compressed thumbnails of the pages as you use the site.</p>
<p>Speaking of those, the thumbnails of the site are generated by the site itself, using an AIR app! The app is kicked off by the CMS when a page has been changed. It calls up the current site (so that the thumbnails are always generated by the latest code, with the latest changes), and puts it in a special mode, eschewing the normal operation of the site and instead rendering a single page in its initial state. The AIR app then gets a signal, takes over, takes a bitmapdata snapshot, and writes it out to disk. Viola, picture-perfect thumbnails every time! I sound like Martha Stewart.</p>
<p>The site also uses a bit of the <a href="http://www.partlyhuman.com/blog/roger/dynamic-text-wrapping-in-actionscript-3">dynamic text wrapping</a> and <a href="http://www.partlyhuman.com/blog/roger/technique-storing-arbitrary-objects-in-html-links">object serialization</a> techniques I posted about earlier.</p>
<p>All in all, this sucker was huge. The hugest thing I&#8217;ve ever attempted. Something like 17,000 lines of original code by me, MA and JY (ok, counting my copious whitespace and <em>occasionally thorough</em> commenting). I knew it was gonna be huge so my basic design principle throughout was <em>decoupling</em>. I relied on interfaces to pull together common ideas, usually sketching out my design in interfaces before writing any concrete classes. Because there&#8217;s so much shared functionality mixed up between things that aren&#8217;t totally alike I made lots of small extends to implement up more interfaces, so I ended up with quite a few classes, but also the ability to start extending from points that didn&#8217;t have irrelevant functionality stuck with them.</p>
<p>The designs and required functionality, of course, also changed throughout the project, and since it was our own website, I never wanted to push against these. Decoupling, of course, helped us here too. I tried to keep things in broad strokes and fill them in with details in the ways that people could see early on, and we were showing stuff at builds even at the first week. Of course, we could have done a lot of things better, but I feel like this project was pretty successful (I mean hey, we didn&#8217;t get cancelled!) and an immense learning experience.</p>
<p>My thanks go out to everyone who had a hand in this site, especially Isaac Golino, Jeff and Michael, Lisa Smith, the countless people who have lent a hand or worked on previous iterations, and the people who were brave enough to clear up our schedules to work on this thing at their own expense. Hopefully the team will plug some of the remaining bugs and people will take good care of the site, keeping it fresh with content and taking advantage of its extensibility.</p>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/roger/blood-sweat-tears-but-mostly-cupcakes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Link Dump Tuesday</title>
		<link>http://dispatchevent.org/roger/link-dump-tuesday/</link>
		<comments>http://dispatchevent.org/roger/link-dump-tuesday/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 00:12:46 +0000</pubDate>
		<dc:creator>Roger Braunstein</dc:creator>
				<category><![CDATA[Site-seeing]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=115</guid>
		<description><![CDATA[Some things that have blown my mind this week. New work by Robert Hodgin Robert Hodgin has consistently made me stare agog at his graphics, and his latest round of processing work seems like a whole new level to me. At this point, his creations are full and fluid enough to act as the complete [...]]]></description>
			<content:encoded><![CDATA[<p>Some things that have blown my mind this week.<br />
<a href="http://www.videogramo.ws/"><img id="image116" src="http://dispatchevent.org/wp-content/uploads/2007/03/color1.gif" alt="videogramo.ws" style="display:block;border:1px solid black;" /></a></p>
<dl>
<dt><a href="http://www.flight404.com/blog">New work by Robert Hodgin</a></dt>
<dd><a href="http://www.flight404.com/blog/">Robert Hodgin</a> has consistently made me stare agog at his graphics, and his latest round of processing work seems like a whole new level to me. At this point, his creations are full and fluid enough to act as the complete music video for a piece. See them in full on his blog or <a href="http://www.vimeo.com/user:flight404/clips">quickly on Vimeo</a>.</dd>
<dt><a href="http://www.motherboard.nu/">MOTHERBOARD</a></dt>
<dd>I didn&#8217;t know it before, but <a href="http://www.bigspaceship.com/">Big Spaceship</a>, pretty much the coolest guys there are, have an unfiltered blog at <a href="http://www.motherboard.nu">MOTHERBOARD</a>, where they post unused graphics, odds and ends, personal projects, office photos, and the like. Those kids have some insane talent.</dd>
<dt><a href="http://www.videogramo.ws/">videogramo.ws</a></dt>
<dd>Cyberphunk snow crash bitmaps. Awesome.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/roger/link-dump-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to replace HTML with Flash</title>
		<link>http://dispatchevent.org/mims/how-to-replace-html-with-flash/</link>
		<comments>http://dispatchevent.org/mims/how-to-replace-html-with-flash/#comments</comments>
		<pubDate>Tue, 27 Feb 2007 20:05:52 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=106</guid>
		<description><![CDATA[Create your page Replace the text Replace the images Replace everything else]]></description>
			<content:encoded><![CDATA[<ol>
<li>Create your page</li>
<li><a href="http://wiki.novemberborn.net/sifr/">Replace the text</a></li>
<li><a href="http://www.swfir.com/">Replace the images</a></li>
<li><a href="http://www.5etdemi.com/blog/archives/2005/04/building-a-flash-front-end-for-wordpress-1-logging-into-the-admin-area/">Replace everything else</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/how-to-replace-html-with-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doffy Blog Games</title>
		<link>http://dispatchevent.org/mims/doffy-blog-games/</link>
		<comments>http://dispatchevent.org/mims/doffy-blog-games/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 22:06:40 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[Videogames]]></category>

		<guid isPermaLink="false">http://mimswright.com/blog/?p=99</guid>
		<description><![CDATA[Games, games, and more Flash games. The Japanese blog Doffy Blog has some incredibly innovative, technically impressive, not to mention fun Flash games. They&#8217;re pretty much ALL worth playing, but I&#8217;ll list them in order of favorites below. Double Wire a Spiderman-like game where you have to guide an apparently drunken figure using two wires [...]]]></description>
			<content:encoded><![CDATA[<p>Games, games, and more Flash games. The Japanese blog <a href="http://ishi.blog2.fc2.com/">Doffy Blog</a> has some incredibly innovative, technically impressive, not to mention fun Flash games. They&#8217;re pretty much ALL worth playing, but I&#8217;ll list them in order of favorites below.</p>
<ul>
<li><a href="http://ishi.blog2.fc2.com/blog-entry-199.html"><img src="http://blog2.fc2.com/i/ishi/file/sw.png" alt="Double Wire" /> <br/> Double Wire</a>
<p>a Spiderman-like game where you have to guide an apparently drunken figure using two wires that attach to the ceiling.</p>
</li>
<li><a href="http://ishi.blog2.fc2.com/blog-entry-85.html"><img src="http://blog2.fc2.com/i/ishi/file/Image7s.jpg" alt="Slug Slayer" /><br /> Slug Slayer</a>
<p>draw lines to direct the flow of salt. Melt as many slugs as possible. The simple AI is pretty impressive &#8211; I found myself setting up traps for the slugs.</p>
</li>
<li><a href="http://ishi.blog2.fc2.com/blog-entry-180.html"><img src="http://blog2.fc2.com/i/ishi/file/Image5s.jpg" alt="Sand, sand, sand" /><br /> Sand, sand, sand</a>
<p>Paint a blank canvas with a palette of particle elements to create a functioning ecosystem &#8211; then destroy it with fire and zombies and build it again. This is really more of a toy than a game.</p>
</li>
<li><a href="http://ishi.blog2.fc2.com/blog-entry-206.html"><img src="http://blog2.fc2.com/i/ishi/file/stickrm.jpg" alt="Stick Remover" /><br /> Stick Remover</a>
<p>Remove one stick at a time without letting the structure collapse.</p>
</li>
<li><a href="http://ishi.blog2.fc2.com/blog-entry-186.html"><img src="http://blog2.fc2.com/i/ishi/file/egg_s.jpg" alt="Egg Way" /><br /> Egg Way</a>
<p>Guide the egg into the skillet. Lulz!</p>
</li>
<li><a href="http://ishi.blog2.fc2.com/blog-entry-173.html"><img src="http://blog2.fc2.com/i/ishi/file/Image3s.jpg" alt="Snow Cat" /><br /> Snow Cat</a>
<p>Cats on sleds! Race your cat down the slope gaining points for landing sick maneuvers. As I look at this list, I can&#8217;t believe this one is last cause it&#8217;s still really fun.</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/doffy-blog-games/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash Game Roundup</title>
		<link>http://dispatchevent.org/mims/flash-game-roundup/</link>
		<comments>http://dispatchevent.org/mims/flash-game-roundup/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 19:10:24 +0000</pubDate>
		<dc:creator>Mims H Wright</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Site-seeing]]></category>
		<category><![CDATA[Videogames]]></category>

		<guid isPermaLink="false">http://blog.mimswright.com/?p=88</guid>
		<description><![CDATA[Here are a few great Flash games that have held my interest for more than a few minutes. Most links came from Game&#124;Life (thanks Chris). Winterbells &#8211; Very simple but well build game. Kind of a variant on the kick-up type games. Flash Element TD &#8211; A Flash game based on a mod of Warcraft [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image87" src="http://dispatchevent.org/wp-content/uploads/2007/01/procrastination.jpg" width="400" alt="Procrastination" /></p>
<p>Here are a few great Flash games that have held my interest for more than a few minutes. Most links came from <a href="http://blog.wired.com/games/">Game|Life</a> (thanks Chris).</p>
<ul>
<li><a href="http://www.ferryhalim.com/orisinal/g3/bells.htm">Winterbells</a> &#8211; Very simple but well build game. Kind of a variant on the <a href="http://www.homestarrunner.com/pop_tire.html">kick-up</a> type games.</li>
<li><a href="http://novelconcepts.co.uk/FlashElementTD/">Flash Element TD</a> &#8211; A Flash game based on a <em>mod</em> of Warcraft III? It&#8217;s a simple but addictive strategy game.</li>
<li><a href="http://www.armorgames.com/games/foursecondfirestorm_popup.html">Four Second Firestorm</a> &#8211; A WarioWare clone created by several different development teams. Very fun but I don&#8217;t know who still wants listen to that Eurotrash Club music.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dispatchevent.org/mims/flash-game-roundup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

