Robot+MVC

**I. Introduction**
Uh oh. It looks like the super-evil recruits have been exceeding fiscal constraints. Dr. Horrible's accountant is not pleased. You should probably train the recruits how to take financial considerations into account when commanding robot armies. Quick! Implement the Evil Robot Training Simulator (TM) Mark IV before Dr. Horrible finds out!

media type="custom" key="7723515" align="center"

**II. Learning Objectives**
//**Knowledge**// //**Skills**//

**VI. Self-explain (Try it!)**
Go over each tag in the MXML program and explain out loud to yourself what it does. If you don't know exactly what the tag does, just try to guess for now.

**VII. Program Walkthrough (Try it!)**
To make the program...
 * Create a new flex project
 * Download robot.swc, radio.swc, and field.swc and add them to the libs directory of your project
 * Create a MadScientistView component and add it as a child to the application
 * Create the model //ArmyModel//
 * Give it an array of RobotData
 * Give it a method called //makeArmy(num:int):void,//
 * it should create the new RobotData objects that represent the robots
 * it should set the added RobotData.displayStatus = RobotData.ADD_ME
 * it should dispatch a RobotEvent.ARMY_CHANGE event
 * Give it a method called broadcast(action:String):void
 * it should iterate through all the RobotData objects and set their action
 * it should dispatch a RobotEvent.ACTION_CHANGE event
 * Give it a method called addOne:void
 * it should add a RobotData object to the array
 * it should set the added RobotData.displayStatus = RobotData.ADD_ME
 * it should dispatch a RobotEvent.ARMY_CHANGE event
 * Give it a method called removeOne:void
 * it should remove one RobotData object from the array
 * it should set the removed RobotData.displayStatus = RobotData.RECYCLE_ME
 * it should disptach a RobotEvent.ARMY_CHANGE event
 * Connect the view to the controller
 * Add a makeArmy_clickHandler method to MadScientistView that dispatches a RobotEvent.MAKE_ARMY event
 * Make the application listen for a the RobotEvent.MAKE_ARMY event
 * Connect the controller to the model
 * When the application receives the RobotEvent.MAKE_ARMY event have it call ArmyModel.//makeArmy//
 * Connect the view to the model
 * Give the MadScientistView a //set armyModel(model:ArmyModel)// function.
 * Inside MadScientistView's //set armyModel// function, it should listen for a RobotEvent.ARMY_CHANGE event with an armyModel_changeHandler method
 * The armyModel_changeHandler should create the army
 * Have the Application pass the ArmyModel to the MadScientistView
 * Now that you have the Make army working, try repeating the above steps to make the broadcasting work
 * Now that you have the Mad Scientist interface working, create a BeanCounterView
 * Hook up the BeanCounterView the same way you hooked up the MadScientistView