Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package patterns.mvc
- {
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.text.TextField;
- import flash.text.TextFieldType;
- /**
- * ...
- * @author Vladimir Minkin
- */
- // View handle all user interaction, think GUI
- public class View extends Sprite
- {
- private var txt_displayText:TextField;
- private var txt_inputText:TextField;
- private var btn_acceptButton:Sprite;
- private var _screenContainer:Sprite;
- private var _model:Model;
- private var _controller:Controller;
- public function View(model:Model, controller:Controller)
- {
- this._controller = controller;
- this._model = model;
- Initialize();
- AddObjectsToStage();
- AddInteractivity();
- LookForChanges();
- }
- private function Initialize():void
- {
- txt_displayText = new TextField();
- txt_displayText.name = "displayText";
- //"Display Text - First Initilization"
- txt_displayText.text = _model.textForView;
- txt_displayText.selectable = false;
- txt_displayText.width = txt_displayText.textWidth + 10;
- txt_displayText.height = txt_displayText.textHeight + 5;
- txt_inputText = new TextField();
- txt_inputText.name = "inputField";
- txt_inputText.type = TextFieldType.INPUT;
- txt_inputText.width = 150;
- txt_inputText.height = 20;
- txt_inputText.border = true;
- btn_acceptButton = new Sprite();
- btn_acceptButton.name = "button";
- btn_acceptButton.graphics.beginFill(0x0882fd);
- btn_acceptButton.graphics.drawRoundRect(0, 0, 150, 25, 5);
- btn_acceptButton.graphics.endFill();
- btn_acceptButton.buttonMode = true;
- btn_acceptButton.useHandCursor = true;
- btn_acceptButton.width = 150;
- _screenContainer = new Sprite();
- _screenContainer.name = "container";
- _screenContainer.graphics.beginFill(0x000000, 0.3);
- _screenContainer.graphics.drawRoundRect( -35, -10, 220, 100, 10);
- _screenContainer.graphics.endFill();
- }
- private function AddObjectsToStage():void
- {
- _screenContainer.addChild(txt_displayText);
- txt_displayText.x = 0;
- txt_displayText.y = 0;
- _screenContainer.addChild(txt_inputText);
- txt_inputText.x = txt_displayText.x
- txt_inputText.y = txt_displayText.y + txt_displayText.height + 5;
- _screenContainer.addChild(btn_acceptButton);
- btn_acceptButton.x = txt_displayText.x
- btn_acceptButton.y = txt_inputText.y + txt_inputText.height + 5;
- this.addChild(_screenContainer);
- _screenContainer.x = 100;
- _screenContainer.y = 50;
- }
- private function AddInteractivity():void
- {
- _screenContainer.addEventListener(MouseEvent.MOUSE_DOWN, _screenContainer_onMouseDownHandler);
- btn_acceptButton.addEventListener(MouseEvent.CLICK, btn_acceptButton_clickHandler);
- }
- private function LookForChanges():void
- {
- _model.addEventListener(Event.CHANGE, _model_changeHandler);
- }
- private function _model_changeHandler(e:Event):void
- {
- txt_displayText.text = e.currentTarget.textForView;
- txt_displayText.width = txt_displayText.textWidth + 10;
- }
- private function btn_acceptButton_clickHandler(e:MouseEvent):void
- {
- trace("click");
- _controller.SaveTextToModel(txt_inputText.text);
- }
- private function _screenContainer_onMouseDownHandler(e:MouseEvent):void
- {
- if (e.target.name == "container") {
- e.currentTarget.addEventListener(MouseEvent.MOUSE_UP, _screenContainer_onMouseUpHandler);
- e.currentTarget.startDrag();
- util_redrawBackgroud(e.currentTarget as Sprite, uint(0x00dd00));
- }
- }
- private function _screenContainer_onMouseUpHandler(e:MouseEvent):void
- {
- e.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, _screenContainer_onMouseUpHandler);
- e.currentTarget.stopDrag();
- util_redrawBackgroud(e.currentTarget as Sprite, uint(0x000000));
- }
- private function util_redrawBackgroud(currentTarget:Sprite, input_color:uint):void
- {
- var color:uint = input_color;
- currentTarget.graphics.clear();
- currentTarget.graphics.beginFill(color, 0.3);
- currentTarget.graphics.drawRoundRect( -35, -10, 220, 100, 10);
- currentTarget.graphics.endFill();
- }
- }
- }
Add Comment
Please, Sign In to add comment