Dukobpa3 Спасибо Вам за помощь!
я удалил предыдущий код, добавил изменённый + новый класс -...
Цитата:
|
думаю когда будет больше - появятся еще вопросы.
|
Так и есть, я просто сначала убедиться хочу, что самое минимальное понимаю, а потом уже продвигаться к тому, что я вообще не знаю как сделать. По этому ушёл делать пример дальше, чтобы Вам понятней было.

Код AS3:
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
public function Main()
{
new BaseController(this);
}
}
}

Код AS3:
package
{
import flash.display.DisplayObjectContainer;
import flash.events.DataEvent;
public class BaseController
{
private var _doc:DisplayObjectContainer;
private var _model:Model;
private var _view:View;
private var _storageObject:Object =
{
}
public function BaseController($doc:DisplayObjectContainer)
{
super();
_doc = $doc;
_model = new Model();
_model.DOCSize = [_doc.root.parent.stage.stageWidth, _doc.root.parent.stage.stageHeight];
trace(_doc.root.parent)
_view = new View(_model);
_view.addEventListener('MENU', view_viewClickHandler);
_doc.addChild(_view);
}
private function view_viewClickHandler(event:DataEvent):void
{
_model.accessStatus(event.data);
}
}
}

Код AS3:
package
{
import adobe.utils.CustomActions;
import flash.events.Event;
import flash.events.EventDispatcher;
public class Model extends EventDispatcher implements IModel
{
private var _DOCSize:Array = [];
private var _getColor:uint ;
private var _menuStatus:String;
public function Model()
{
super();
}
public function accessStatus($button:String):void
{
if ($button == '0')
{
if (_menuStatus == $button) return;
_menuStatus = $button;trace(';;;;;;;;;;;')
_getColor = 0xA8F2ED;
dispatchEvent(new Event('MODEL_MENU'));
}
else
if ($button == '1')
{
if (_menuStatus == $button) return;
_menuStatus = $button;
_getColor = 0xEBF2A8;
dispatchEvent(new Event('MODEL_MENU'));
}
else
if ($button == '2')
{
return;
}
else
{
throw new Error('ERROR');
}
}
public function get DOCSize():Array
{
return _DOCSize;
}
public function set DOCSize(value:Array):void
{
_DOCSize = value;
}
public function get getColor():uint
{
return _getColor;
}
public function set getColor(value:uint):void
{
_getColor = value;
}
}
}

Код AS3:
package
{
import flash.events.IEventDispatcher;
public interface IModel extends IEventDispatcher
{
function accessStatus($button:String):void;
function get DOCSize():Array;
function get getColor():uint ;
}
}

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.DataEvent;
import flash.events.Event;
import flash.events.MouseEvent;
public class View extends Sprite
{
private var _model:IModel;
private var _button:Button;
private var _menuContainer:Sprite;
private var _backgraund:Sprite;
public function View($model:IModel)
{
super();
this.mouseEnabled = false;
_model = $model;
_model.addEventListener('MODEL_MENU', model_modelMenuHandler);
_backgraund = new Sprite();
_backgraund.mouseChildren = false;
_backgraund.mouseEnabled = false;
_backgraund.graphics.beginFill(0xF7E1D5);
_backgraund.graphics.drawRect(0, 0, _model.DOCSize[0], _model.DOCSize[1]);
_backgraund.graphics.endFill();
super.addChild(_backgraund);
this.addEventListener(MouseEvent.MOUSE_DOWN, this_mouseDownHandler);
var id:int = 0;
_menuContainer = new Sprite();
_menuContainer.name = 'menu';
super.addChild(_menuContainer);
for (var i:int = 0; i < 3; i++)
{
_button = new Button();
_button.id = id++;
_button.x += 72 * i;
_menuContainer.addChild(_button);
}
}
private function model_modelMenuHandler(event:Event):void
{
_backgraund.graphics.clear();
_backgraund.graphics.beginFill(uint(_model.getColor));
_backgraund.graphics.drawRect(0, 0, _model.DOCSize[0], _model.DOCSize[1]);
_backgraund.graphics.endFill();
}
private function this_mouseDownHandler(event:MouseEvent):void
{
super.dispatchEvent(new DataEvent('MENU',false,false,event.target.id));
}
}
}

Код AS3:
package
{
import flash.display.Sprite;
public class Button extends Sprite
{
private var _id:int;
public function Button()
{
this.graphics.beginFill(0xA9B6F1);
this.graphics.drawRect(0, 0, 70, 45);
this.graphics.endFill();
}
public function get id():int
{
return _id;
}
public function set id(value:int):void
{
_id = value;
}
}
}