traditional vanilla MVC tends to use composition like the example given,
check out robotlegs if you don't like it :) then you inject dependencies
instead of passing them around and everything gets a bit more loosely
coupled...

On 16 February 2012 11:46, Paul Andrews <[email protected]> wrote:

> Excellent job.
>
> I have one small point, on a practical level.
>
> For the views, in particular, I don't usually pass arguments to the
> constructor. It's not such a big deal for code-only examples, but in my
> flash world I mix my components between stuff created dynamically and
> things created in the IDE - sometimes I build components as assemblies on
> the stage using the IDE. The point is that passing arguments to the
> constructor then becomes an issue for a view.
>
> Might I suggest an init() function to pass in Model and Controller?
>
> Paul
>
>
>
>
> On 16/02/2012 07:59, Ross Sclafani wrote:
>
>> From: Ross Sclafani<ross.sclafani@gmail.**com <[email protected]>>
>> Date: February 16, 2012 2:39:34 AM EST
>> To: Cor<[email protected]>
>> Cc: Flash Coders 
>> List<flashcoders@chattyfig.**figleaf.com<[email protected]>>,
>> [email protected]
>> Subject: Re: MVC
>>
>> feel free to hit me up any time ill try to have time to respong
>>
>> none the less, this should get you started:
>>
>> /*
>>  * Model.as
>>  *
>>  * mvc.Model;
>>  */
>> package mvc {
>>        import flash.events.EventDispatcher;
>>        import flash.events.Event;
>>        class Model extends EventDispatcher{
>>                private var _count:int = 0;
>>                public function get count():int{
>>                        return _count;
>>                }
>>                public function set count(value:int):void{
>>                        this._count= value;
>>                        update();
>>                }
>>                public function Model(){
>>                        super()
>>                }
>>                private function update():void{
>>                        this.dispatchEvent(new Event(Event.CHANGE));
>>                }
>>        }
>> }
>>
>>
>> /*
>>  * Controller.as
>>  *
>>  * mvc.Controller;
>>  */
>> package mvc {
>>        public  class Controller {
>>                private var model:Model;
>>                public function Controller(model:Model){
>>                        super()
>>                        this.model = model;
>>                }
>>                public function countUp():void{
>>                        this.model.count++;
>>                }
>>        }
>> }
>>
>> /*
>>  * View.as
>>  *
>>  * mvc.View;
>>  */
>> package mvc {
>>        import flash.text.TextField;
>>        import flash.events.Event;
>>        import flash.display.Sprite;
>>        public  class View extends Sprite(){
>>                private var model:Model;
>>                private var controller Controller;
>>                private var textField:TextField = new TextField();
>>                public function View(model:Model, controller:Controller){
>>                        model.addEventListener(Event.**CHANGE,
>> this.model_changeHandler);
>>                        super()
>>                        this.model = model;
>>                        this.controller = controller;
>>                        this.addChild(this.textField);
>>                        this.stage.addEventListener(**MouseEvent.CLICK,
>> this.stage_clickHandler)
>>
>>                }
>>                private function stage_clickHandler(event:**
>> MouseEvent):void{
>>                        this.controller.countUp();
>>                }
>>                private function model_changeHandler(event:**Event):void{
>>                        this.textField.text = this.model.count
>>                }
>>        }
>> }
>> /*
>>  * App.as
>>  *
>>  * MVC screen click counter.
>>  */
>> package{
>>        import mvc.Model;
>>        import mvc. View;
>>        import mvc.Controller;
>>        public class App{
>>                private var model:Model = new Model();
>>                private var controller:Controller = new
>> Controller(this.model);
>>                private var view:View = new View(model, controller);
>>                public function App(){
>>                        this.addChild(this.view);
>>                }
>>        }
>> }
>>
>> Now imagine a Model with more properties.
>> And tons of different Views of them that data.
>> Some of which provide a UI linked to Controller methods that manipulate
>> it.
>>
>> _ross
>>
>>
>> ______________________________**_________________
>> Flashcoders mailing list
>> [email protected].**com <[email protected]>
>> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://chattyfig.figleaf.com/mailman/listinfo/flashcoders>
>>
>>
> ______________________________**_________________
> Flashcoders mailing list
> [email protected].**com <[email protected]>
> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders<http://chattyfig.figleaf.com/mailman/listinfo/flashcoders>
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to