<?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>shaun smith &#187; as3</title>
	<atom:link href="http://shaun.boyblack.co.za/blog/tag/as3/feed/" rel="self" type="application/rss+xml" />
	<link>http://shaun.boyblack.co.za/blog</link>
	<description>Flash, Flex, Ruby - Cape Town, SA</description>
	<lastBuildDate>Wed, 08 Sep 2010 17:56:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>AS3 DI Metadata Tags</title>
		<link>http://shaun.boyblack.co.za/blog/2010/09/08/as3-di-metadata-tags/</link>
		<comments>http://shaun.boyblack.co.za/blog/2010/09/08/as3-di-metadata-tags/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 17:56:48 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Banter]]></category>
		<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[metadata]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=964</guid>
		<description><![CDATA[Spring Actionscript, Dawn, SmartyPants-IOC, Swiz, Spicelib (used by Parsley) and SwiftSuspenders (used by Robotlegs) perform Dependency Injection. Moreover they can all perform automatic DI by parsing class metadata. It would be grand if the common DI related metadata tags could be standardised. That way we really could write code that is decoupled from any particular [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.springactionscript.org/">Spring Actionscript</a>, <a href="http://github.com/sammyt/dawn">Dawn</a>, <a href="http://smartypants.expantra.net/">SmartyPants-IOC</a>, <a href="http://swizframework.org/">Swiz</a>, <a href="http://www.spicefactory.org/parsley/">Spicelib</a> (used by <a href="http://www.spicefactory.org/parsley/">Parsley</a>) and <a href="http://github.com/tschneidereit/SwiftSuspenders">SwiftSuspenders</a> (used by <a href="http://www.robotlegs.org/">Robotlegs</a>) perform Dependency Injection.</p>
<p>Moreover they can all perform automatic DI by parsing class metadata. It would be grand if the common DI related metadata tags could be standardised. That way we really could write code that is decoupled from any particular framework.</p>
<p>I&#8217;ve started a little document over at GitHub:</p>
<p><a href="http://github.com/darscan/AS3-DI-Metadata">http://github.com/darscan/AS3-DI-Metadata</a></p>
<p>I don&#8217;t know the libraries well enough to fill in all the details, so if you could fork the repo and edit the doc that would be great! Also, the format/layout could be better, so if you have any ideas on that front.. edit away.</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2010/09/08/as3-di-metadata-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tuning The Legs</title>
		<link>http://shaun.boyblack.co.za/blog/2010/03/10/tuning-the-legs/</link>
		<comments>http://shaun.boyblack.co.za/blog/2010/03/10/tuning-the-legs/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 12:09:01 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=902</guid>
		<description><![CDATA[The Robotlegs MVCS implementation was designed to be convenient: quick-n-easy for common use cases. Nothing is free, of course, and that convenience comes at a cost. I want to highlight a few things that can be tweaked to improve performance for applications that really need it. Automatic Mediation In order to determine the scope of [...]]]></description>
			<content:encoded><![CDATA[<p>The Robotlegs MVCS implementation was designed to be convenient: quick-n-easy for common use cases. Nothing is free, of course, and that convenience comes at a cost. I want to highlight a few things that can be tweaked to improve performance for applications that really need it.<span id="more-902"></span></p>
<h3>Automatic Mediation</h3>
<p>In order to determine the scope of a view component, Robotlegs listens to the contextView for bubbling capture-phase ADDED_TO_STAGE events:</p>
<p><a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/base/MediatorMap.as#L233">MediatorMap.as#L233</a><br />
<a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/base/MediatorMap.as#L260">MediatorMap.as#L260</a></p>
<p>Every display object that lands on the stage inside the contextView is checked against a mapping dictionary. This can be quite expensive for complex display object hierarchies where there is a lot of re-parenting. It&#8217;s also the only option available if you want to keep your view components completely framework-unaware. If, however, you&#8217;re prepared to modify your components slightly (it&#8217;s a one-liner) then you can try out this utility:</p>
<p><a href="http://github.com/eidiot/robotlegs-utilities-LazyMediator">http://github.com/eidiot/robotlegs-utilities-LazyMediator</a></p>
<p>Instead of listening for ADDED_TO_STAGE events emitted by every component, we listen only for custom events dispatched by view components that explicitly require mediation.</p>
<p>Note: This utility currently only supports the MediatorMap and needs to be expanded to support the ViewMap. Fork and improve!</p>
<h3>Default Injection Points</h3>
<p>The actors in the MVCS package have a number of pre-configured injection points (dependencies). When you extend mvcs.Command all you are really doing is inheriting some dependencies:</p>
<p><a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/mvcs/Command.as#L23">mvcs/Command.as#L23</a></p>
<p>Whilst handy, it is quite seldom that we actually use all of those in a given Command.</p>
<p>A much cleaner, and ever-so-slightly cheaper approach is to declare only the dependencies that you actually need. Instead of extending Actor or Command (this doesn&#8217;t work so well for the Mediator class), just create a vanilla class and declare your dependencies manually:</p>
<pre>public class MyCommand
{
	[Inject]
	public var injector:IInjector;

	public function execute():void
	{
		injector.mapClass( Vehicle, Car );
	}
}
</pre>
<p>Remember, the Robotlegs apparatus is already mapped for you if you need anything:</p>
<p><a href="http://github.com/robotlegs/robotlegs-framework/blob/v1.0.3/src/org/robotlegs/mvcs/Context.as#L190">mvcs/Context.as#L190</a></p>
<p>Notice that the IEventMap is not mapped as a value or singleton &#8211; you&#8217;ll get a new IEventMap instance whenever you ask for one.</p>
<p>That&#8217;s it for now!</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2010/03/10/tuning-the-legs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Robotlegs v1.0.0 &#8211; Out Now!</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/26/robotlegs-v1-0-0-out-now/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/26/robotlegs-v1-0-0-out-now/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 23:18:56 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=895</guid>
		<description><![CDATA[Robotlegs AS3 v1.0.0 has been released A huge big &#8220;Thank You&#8221; to everyone involved. Let the &#8220;utility building&#8221; begin! Robotlegs is an automated dependency injection framework for Flash, Flex and AIR.]]></description>
			<content:encoded><![CDATA[<p><strong><a title="Robotlegs AS3" href="http://www.robotlegs.org/">Robotlegs AS3</a> v1.0.0 has been released </strong></p>
<p>A huge big &#8220;Thank You&#8221; to everyone involved. Let the &#8220;utility building&#8221; begin!</p>
<p><em>Robotlegs is an automated dependency injection framework for Flash, Flex and AIR.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/26/robotlegs-v1-0-0-out-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robotliz 2 &#8211; A Six Minute Cleanup</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/12/robotliz-2-a-six-minute-cleanup/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/12/robotliz-2-a-six-minute-cleanup/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 12:38:39 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=874</guid>
		<description><![CDATA[Just a quickie &#8211; I cleaned up the Robotliz app a little. In this short vid I walk through the new structure and touch on some light Git/GitHub flows: The (better, but not awesome) code is over at: http://github.com/darscan/SillyStockPriceExample/tree/robotlegs]]></description>
			<content:encoded><![CDATA[<p>Just a quickie &#8211; I cleaned up the <a title="Robotliz – Using Robotlegs like Swiz in 20 minutes" href="http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/">Robotliz app</a> a little. In this short vid I walk through the new structure and touch on some light Git/GitHub flows:</p>
<p><a title="Robotliz 2 - A quick cleanup" href="http://vimeo.com/7569666"><img class="alignnone size-full wp-image-868" title="RobotlegsVimeo" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/RobotlegsVid.jpg" alt="RobotlegsVimeo" width="450" height="265" /></a></p>
<p>The (better, but not awesome) code is over at:</p>
<p><a title="Robotliz on GitHub" href="http://github.com/darscan/SillyStockPriceExample/tree/robotlegs">http://github.com/darscan/SillyStockPriceExample/tree/robotlegs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/12/robotliz-2-a-six-minute-cleanup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robotliz &#8211; Using Robotlegs like Swiz in 20 minutes</title>
		<link>http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 07:21:20 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[swiz]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=863</guid>
		<description><![CDATA[Warning: The style of architecture demonstrated in this video is not sexy. Nor is it in any way recommended. Also, I cheat by eating plenty copy-pasta, and I say &#8220;um&#8221; a LOT. I&#8217;m still trying to figure about the best way to illustrate the simplicity and flexibility of the Robotlegs framework. In the meantime however, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Warning:</strong> <em>The style of architecture demonstrated in this video is not sexy. Nor is it in any way recommended. Also, I cheat by eating plenty copy-pasta, and I say &#8220;um&#8221; a LOT.</em></p>
<p>I&#8217;m still trying to figure about the best way to illustrate the simplicity and flexibility of the Robotlegs framework. In the meantime however, I thought I&#8217;d respond to <a title="Swiz in 20 minutes" href="http://www.firemoss.com/index.cfm/2009/10/21/Swiz-in-20-minutes-video--byebye-boilerplate">this cool Swiz video</a> by doing the same thing with <a title="Robotlegs AS3" href="http://www.robotlegs.org/">Robotlegs</a> &#8211; except ending up with a modular (as opposed to a static) app, and throwing in some git/<a title="GitHub - Social Coding" href="http://github.com/">GitHub</a> love as a bonus.</p>
<p>I don&#8217;t have a nice mic, so I strapped a phone to the side of my head and left myself a really long voicemail. Anyhoo:</p>
<p><a title="Robotlegs Swizzle on Vimeo" href="http://www.vimeo.com/7524637"><img class="alignnone size-full wp-image-868" title="RobotlegsVimeo" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/11/RobotlegsVid.jpg" alt="RobotlegsVimeo" width="450" height="265" /></a></p>
<p>You can grab the (terrible) source over at:</p>
<p><a title="SillyStockPriceExample demo app" href="http://github.com/darscan/SillyStockPriceExample">http://github.com/darscan/SillyStockPriceExample</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/11/10/robotliz-using-robotlegs-like-swiz-in-20-minutes/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3 v0.9: ElasticChaos (Broken, Fixed, Tidied, Improved)</title>
		<link>http://shaun.boyblack.co.za/blog/2009/10/07/robotlegs-as3-v0-9-elasticchaos-broken-fixed-tidied-improved/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/10/07/robotlegs-as3-v0-9-elasticchaos-broken-fixed-tidied-improved/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 16:36:09 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=844</guid>
		<description><![CDATA[RobotLegs AS3 v0.9 (codename ElasticChaos) is up on GitHub: RobotLegs is nearly at v1.0! Many awesome changes since v0.8, with the most community involvement to date: http://github.com/robotlegs/robotlegs-framework/commits/v0.9.2 The &#8220;Official RobotLegs Framework Repository&#8221; has also been moved: http://github.com/robotlegs/robotlegs-framework A LOT of exciting stuff is going on, and I encourage you to check out the Wiki: http://wiki.github.com/robotlegs/robotlegs-framework [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a title="RobotLegs AS3" href="http://wiki.github.com/robotlegs/robotlegs-framework/faq">RobotLegs AS3</a> v0.9 (codename ElasticChaos) is up on <a title="RobotLegs on GitHub" href="http://wiki.github.com/robotlegs/robotlegs-framework/faq">GitHub</a>:</strong></p>
<p>RobotLegs is nearly at v1.0! Many awesome changes since v0.8, with the most community involvement to date:</p>
<p><a title="RobotLegs v0.9.2 Commits" href="http://github.com/robotlegs/robotlegs-framework/commits/v0.9.2">http://github.com/robotlegs/robotlegs-framework/commits/v0.9.2</a></p>
<p><strong>The &#8220;Official RobotLegs Framework Repository&#8221; has also been moved:</strong></p>
<p><a title="RobotLegs AS3" href="http://github.com/robotlegs/robotlegs-framework">http://github.com/robotlegs/robotlegs-framework</a></p>
<p><span id="more-844"></span>A LOT of exciting stuff is going on, and I encourage you to check out the Wiki:</p>
<p><a title="RobotLegs AS3" href="http://wiki.github.com/robotlegs/robotlegs-framework">http://wiki.github.com/robotlegs/robotlegs-framework</a></p>
<p>An upgrade guide from v0.8 isn&#8217;t really necessary is it? Here&#8217;s a list of <em>some</em> of the changes introduced in this last sprint:</p>
<ul>
<li>SwiftSuspenders DI solution fully integrated (bundled) into RobotLegs</li>
<li><strong>Constructor Injection</strong> (via SwiftSuspenders)</li>
<li>Bonus DI Adapters removed</li>
<li>CommandMap now features <strong>strong Event mapping</strong></li>
<li>As3commons logger removed</li>
<li>Utils inlined and removed: createDelegate() and DelayedFunctionQueue</li>
<li>dispatch() helper method renamed to dispatchEvent()</li>
</ul>
<p>And various miscellaneous optimisations, cleanups and API changes.</p>
<p><em>RobotLegs AS3 is a Dependency Injection Driven MVCS Framework for Flash, Flex and AIR.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/10/07/robotlegs-as3-v0-9-elasticchaos-broken-fixed-tidied-improved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RobotLegs &#8211; RazorSharpness Through Collaboration</title>
		<link>http://shaun.boyblack.co.za/blog/2009/10/03/robotlegs-razorsharpness-through-collaboration/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/10/03/robotlegs-razorsharpness-through-collaboration/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 14:17:15 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[yagni]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=824</guid>
		<description><![CDATA[Help make RobotLegs the cleanest, smallest, most testable, and most kick-ass framework for Flash and Flex ever built &#8211; join the discussion group: http://groups.google.com/group/robotlegs/topics Or help fill up the Robotlegs Knowledgebase: http://knowledge.robotlegs.org/]]></description>
			<content:encoded><![CDATA[<p><a href="http://groups.google.com/group/robotlegs/browse_thread/thread/68569a7c85ce4c92"><img class="alignnone size-full wp-image-825" title="Yagninator" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/10/Yagninator.jpg" alt="Yagninator" width="512" height="384" /></a></p>
<p>Help make RobotLegs the cleanest, smallest, most testable, and most kick-ass framework for Flash and Flex ever built &#8211; join the discussion group:</p>
<p><a title="RobotLegs AS3 Discussion Group" href="http://groups.google.com/group/robotlegs/topics">http://groups.google.com/group/robotlegs/topics</a></p>
<p>Or help fill up the Robotlegs Knowledgebase:</p>
<p><a title="Robotlegs Knowledgebase" href="http://knowledge.robotlegs.org/">http://knowledge.robotlegs.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/10/03/robotlegs-razorsharpness-through-collaboration/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3 v0.8: ByeByeFlex (FlexMediator removed)</title>
		<link>http://shaun.boyblack.co.za/blog/2009/09/10/robotlegs-as3-v0-8-byebyeflex-flexmediator-removed/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/09/10/robotlegs-as3-v0-8-byebyeflex-flexmediator-removed/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 08:18:05 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=807</guid>
		<description><![CDATA[RobotLegs AS3 v0.8 (codename ByeByeFlex) is up on GitHub: The RobotLegs Library has received it&#8217;s first community contribution! Till Schneidereit fixed something that had been bugging me for a while: the existence of the FlexMediator. Initially I split this out to avoid compiling any Flex classes into pure AS3 projects. Till submitted a patch that [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a title="RobotLegs AS3" href="../robotlegs-as3/">RobotLegs AS3</a> v0.8 (codename ByeByeFlex) is up on <a title="RobotLegs on GitHub" href="http://wiki.github.com/darscan/robotlegs">GitHub</a>:</strong></p>
<p>The RobotLegs Library has received it&#8217;s first community contribution! <a href="http://www.tillschneidereit.de/">Till Schneidereit</a> fixed something that had been bugging me for a while: the existence of the FlexMediator. Initially I split this out to avoid compiling any Flex classes into pure AS3 projects. Till submitted a patch that allows the Mediator to detect the presence of Flex without this side-effect.</p>
<p>This is why I love <a title="Git" href="http://www.git-scm.org/">Git</a> (and <a title="GitHub - Social Coding" href="http://github.com/">GitHub</a>). Anyone can come along, fork the project, make changes to it, and send a Pull Request &#8211; without requiring any permission to do so. This significantly lowers the barrier-to-entry for once-off or &#8220;impulse&#8221; contributions.</p>
<p>Anyhoo, this change to the Library requires a find-n-replace on old application code:</p>
<p>FlexMediator -&gt; Mediator</p>
<p><em>RobotLegs AS3 is a Dependency Injection Driven MVCS Framework for Flash and Flex.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/09/10/robotlegs-as3-v0-8-byebyeflex-flexmediator-removed/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>What Is RobotLegs?</title>
		<link>http://shaun.boyblack.co.za/blog/2009/09/07/wtf-is-robotlegs/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/09/07/wtf-is-robotlegs/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 20:16:18 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[crybaby]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=789</guid>
		<description><![CDATA[What? RobotLegs is an Architectural (or Structural) Action Script 3 Framework. It provides a mechanism for wiring objects together. It promotes a usage pattern for keeping your code loosely coupled and easy to test. It has a narrow scope: wiring. How? RobotLegs relies on two things fairly unique to the Flash Platform: A powerful, built-in, [...]]]></description>
			<content:encoded><![CDATA[<h3>What?</h3>
<ul>
<li><a title="RobotLegs AS3" href="http://wiki.github.com/darscan/robotlegs">RobotLegs</a> is an Architectural (or Structural) Action Script 3 Framework.</li>
<li>It provides a mechanism for wiring objects together.</li>
<li>It promotes a usage pattern for keeping your code loosely coupled and easy to test.</li>
<li>It has a narrow scope: wiring.</li>
</ul>
<p><span id="more-789"></span></p>
<h3>How?</h3>
<p>RobotLegs relies on two things fairly unique to the Flash Platform: A powerful, built-in, standardised Event Model, and a Display List that is 100% integrated with that Event Model.</p>
<h3>Why?</h3>
<p>Using these two things (and any compliant Dependency Injection framework) RobotLegs is able to offer a minimally invasive solution for wrapping an application around a display object hierarchy &#8211; even if you don&#8217;t have access to modify the Classes within that hierarchy. Depending on your style, this may be hugely advantageous.</p>
<h3>But What About The Lolrus?</h3>
<p>Swiz, Parsley, Mate, PureMVC, HydraMVC and Cairngorm exist to solve the same basic problem, <span style="text-decoration: line-through;">but they suffer from blurry scopes and/or poor implementations</span>.(*) Here are some initial thoughts on that: <a title="Another Framework, Oh Noes!" href="http://shaun.boyblack.co.za/blog/2009/04/29/another-architectural-framework-but-why/">http://shaun.boyblack.co.za/blog/2009/04/29/another-architectural-framework-but-why/</a></p>
<p>Some may defend their violations, claiming pragmatism over purism &#8211; that is dangerous: the library that you use to wire your application together directly affects the flexibility and, more importantly, testability of your code. I am being pragmatic: if my Classes are hard to test (Singletons, Statics) then my application will be fragile and I won&#8217;t be free to refactor with speed and confidence. If code can&#8217;t be refactored easily it is dead. If I can&#8217;t refactor my code easily my progress as a developer slows down drastically.</p>
<h3>So, Is RobotLegs Perfect?</h3>
<p>Well no, but it does everything that it&#8217;s advertised to do, and tests are being set up to ensure that it stays that way. A framework must pick it&#8217;s battles carefully. There are one or two things that need some very careful consideration before RobotLegs can reach 1.0</p>
<p>Also, some peer review would be nice. I&#8217;m a mediocre programmer at best. I&#8217;m on that part of the curve where I&#8217;m knowledgeable enough to know exactly how bad I am.</p>
<h3>Where Is The Website? OMG, Where Are The Docs?</h3>
<p>I thought it would be best to determine whether or not I have completely missed the point before investing time and energy into support artifacts.</p>
<p><img class="alignnone size-full wp-image-803" title="lulzorsomgrofls2" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/09/lulzorsomgrofls2.jpg" alt="lulzorsomgrofls2" width="350" height="350" /></p>
<h3>Dude, You&#8217;re Wearing Sunglasses Indoors. WTF?</h3>
<p>So, have I missed the point? Do you really think that ANY of the architectural frameworks out there are good enough?</p>
<p>(*) Actually, it&#8217;s not really that, it&#8217;s more about how your application code looks when written on top of these frameworks.</p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/09/07/wtf-is-robotlegs/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RobotLegs AS3 Framework Unit Tests</title>
		<link>http://shaun.boyblack.co.za/blog/2009/09/05/robotlegs-as3-framework-unit-tests/</link>
		<comments>http://shaun.boyblack.co.za/blog/2009/09/05/robotlegs-as3-framework-unit-tests/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 17:42:20 +0000</pubDate>
		<dc:creator>shaun</dc:creator>
				<category><![CDATA[Robotlegs]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaun.boyblack.co.za/blog/?p=779</guid>
		<description><![CDATA[I&#8217;ve started putting together some unit tests for RobotLegs: http://github.com/darscan/robotlegstests Feel free to fork if testing is your idea of insane weekend fun!]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started putting together some unit tests for RobotLegs:</p>
<p><a title="RobotLegs AS3 Unit Tests on GitHub" href="http://github.com/darscan/robotlegstests">http://github.com/darscan/robotlegstests</a></p>
<p>Feel free to fork if testing is your idea of insane weekend fun!</p>
<p><img class="alignnone size-full wp-image-785" title="RobotLegs" src="http://shaun.boyblack.co.za/blog/wp-content/uploads/2009/09/RLSketch3.png" alt="RobotLegs" width="220" height="220" /></p>
]]></content:encoded>
			<wfw:commentRss>http://shaun.boyblack.co.za/blog/2009/09/05/robotlegs-as3-framework-unit-tests/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
