Guest User

Untitled

a guest
Nov 25th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. package patterns.mvc
  2. {
  3. import flash.display.Sprite;
  4. import flash.events.Event;
  5. import flash.events.MouseEvent;
  6. import flash.text.TextField;
  7. import flash.text.TextFieldType;
  8.  
  9. /**
  10. * ...
  11. * @author Vladimir Minkin
  12. */
  13. // View handle all user interaction, think GUI
  14. public class View extends Sprite
  15. {
  16. private var txt_displayText:TextField;
  17. private var txt_inputText:TextField;
  18.  
  19. private var btn_acceptButton:Sprite;
  20. private var _screenContainer:Sprite;
  21.  
  22. private var _model:Model;
  23. private var _controller:Controller;
  24.  
  25. public function View(model:Model, controller:Controller)
  26. {
  27. this._controller = controller;
  28. this._model = model;
  29.  
  30. Initialize();
  31. AddObjectsToStage();
  32. AddInteractivity();
  33. LookForChanges();
  34. }
  35.  
  36. private function Initialize():void
  37. {
  38. txt_displayText = new TextField();
  39. txt_displayText.name = "displayText";
  40. //"Display Text - First Initilization"
  41. txt_displayText.text = _model.textForView;
  42. txt_displayText.selectable = false;
  43. txt_displayText.width = txt_displayText.textWidth + 10;
  44. txt_displayText.height = txt_displayText.textHeight + 5;
  45.  
  46. txt_inputText = new TextField();
  47. txt_inputText.name = "inputField";
  48. txt_inputText.type = TextFieldType.INPUT;
  49. txt_inputText.width = 150;
  50. txt_inputText.height = 20;
  51. txt_inputText.border = true;
  52.  
  53. btn_acceptButton = new Sprite();
  54. btn_acceptButton.name = "button";
  55. btn_acceptButton.graphics.beginFill(0x0882fd);
  56. btn_acceptButton.graphics.drawRoundRect(0, 0, 150, 25, 5);
  57. btn_acceptButton.graphics.endFill();
  58. btn_acceptButton.buttonMode = true;
  59. btn_acceptButton.useHandCursor = true;
  60. btn_acceptButton.width = 150;
  61.  
  62. _screenContainer = new Sprite();
  63. _screenContainer.name = "container";
  64. _screenContainer.graphics.beginFill(0x000000, 0.3);
  65. _screenContainer.graphics.drawRoundRect( -35, -10, 220, 100, 10);
  66. _screenContainer.graphics.endFill();
  67. }
  68.  
  69. private function AddObjectsToStage():void
  70. {
  71. _screenContainer.addChild(txt_displayText);
  72. txt_displayText.x = 0;
  73. txt_displayText.y = 0;
  74.  
  75. _screenContainer.addChild(txt_inputText);
  76. txt_inputText.x = txt_displayText.x
  77. txt_inputText.y = txt_displayText.y + txt_displayText.height + 5;
  78.  
  79. _screenContainer.addChild(btn_acceptButton);
  80. btn_acceptButton.x = txt_displayText.x
  81. btn_acceptButton.y = txt_inputText.y + txt_inputText.height + 5;
  82.  
  83. this.addChild(_screenContainer);
  84. _screenContainer.x = 100;
  85. _screenContainer.y = 50;
  86.  
  87. }
  88.  
  89. private function AddInteractivity():void
  90. {
  91. _screenContainer.addEventListener(MouseEvent.MOUSE_DOWN, _screenContainer_onMouseDownHandler);
  92. btn_acceptButton.addEventListener(MouseEvent.CLICK, btn_acceptButton_clickHandler);
  93. }
  94.  
  95. private function LookForChanges():void
  96. {
  97. _model.addEventListener(Event.CHANGE, _model_changeHandler);
  98. }
  99.  
  100. private function _model_changeHandler(e:Event):void
  101. {
  102. txt_displayText.text = e.currentTarget.textForView;
  103. txt_displayText.width = txt_displayText.textWidth + 10;
  104. }
  105.  
  106. private function btn_acceptButton_clickHandler(e:MouseEvent):void
  107. {
  108. trace("click");
  109. _controller.SaveTextToModel(txt_inputText.text);
  110. }
  111.  
  112. private function _screenContainer_onMouseDownHandler(e:MouseEvent):void
  113. {
  114. if (e.target.name == "container") {
  115. e.currentTarget.addEventListener(MouseEvent.MOUSE_UP, _screenContainer_onMouseUpHandler);
  116. e.currentTarget.startDrag();
  117. util_redrawBackgroud(e.currentTarget as Sprite, uint(0x00dd00));
  118. }
  119. }
  120.  
  121. private function _screenContainer_onMouseUpHandler(e:MouseEvent):void
  122. {
  123. e.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, _screenContainer_onMouseUpHandler);
  124. e.currentTarget.stopDrag();
  125. util_redrawBackgroud(e.currentTarget as Sprite, uint(0x000000));
  126. }
  127.  
  128. private function util_redrawBackgroud(currentTarget:Sprite, input_color:uint):void
  129. {
  130. var color:uint = input_color;
  131. currentTarget.graphics.clear();
  132. currentTarget.graphics.beginFill(color, 0.3);
  133. currentTarget.graphics.drawRoundRect( -35, -10, 220, 100, 10);
  134. currentTarget.graphics.endFill();
  135. }
  136.  
  137. }
  138.  
  139. }
Add Comment
Please, Sign In to add comment