When you're doing your homebrew little projects at home you fret about how your classes are going to communicate, and how to lay them out nicely and what should be aware of what, etc. Robotlegs does all that for you. The brief blurb on the site states:
"Robotlegs is a pure AS3 micro-architecture (framework) with a light footprint and limited scope. Simply put, Robotlegs is there to help you wire your objects together. It provides the glue that your application needs to easily function in a decoupled way. Through the use of automated metadata based dependency injection Robotlegs removes boilerplate code in an application. By promoting loose coupling and avoiding the use of Singletons and statics in the framework Robotlegs can help you write code that is highly testable."
Did I say it's brilliant? Well it is! Instead of thinking of how your classes communicate you start thinking about why you need that class, what it's responsibilities should be and quite often you realise you can decouple it very easily.
The automated dependency injection is frankly amazing! I don't really know how to explain it very well and it took some tinkering to actually get my head around it. Each robotlegs project has a Context where you'll describe the relationship and communication through your project, instead of putting a chunk of code in each class you use essentially coupling it to your project. You are recommended to use interfaces and it makes sense as using the context you can set up tests very easily by using mock / stubs instead of concrete classes. I am CRAP at explaining this! Have a look at the first part of the Best Practices page :)
I've written a really crappy simulation of a box falling from the sky to the ground, it's crap..really! It uses Robotlegs for the framework, AS3Signals for the communication and Box2D for the physics. At the moment I'm re-writing my core project to use signals and fit into the Robotlegs framework, mostly to help me learn about the S in MVCS (services!) and how to decouple the canvas and blit object for blitting!
There's also a wonderful little tool called Texture Packer someone at work told me about. I've just got the Pro licence so I'll be re-writing how the image and associated data will be loaded in and passed to the blit renderer!
Starting this blog really made the world of AS3 seem so much more colourful! So much more to learn!
PS : Poom!