/drawing/RectangleDrawer.as

https://gitlab.com/sakisan/editeur-aaaah
ActionScript | 89 lines | 79 code | 10 blank | 0 comment | 18 complexity | 2afcf7e1b3744f7ee19345557372cbcd MD5 | raw file
  1. package drawing
  2. {
  3. import blocks.Rectangle;
  4. import editeur.Drawboard;
  5. import flash.display.CapsStyle;
  6. import flash.display.Graphics;
  7. import flash.display.JointStyle;
  8. import flash.display.LineScaleMode;
  9. import flash.display.MovieClip;
  10. import flash.display.Sprite;
  11. import flash.events.MouseEvent;
  12. import properties.Getter;
  13. import properties.State;
  14. public class RectangleDrawer extends ShapeDrawer
  15. {
  16. protected var rectangle:Rectangle;
  17. public function RectangleDrawer(d:Drawboard)
  18. {
  19. super(d);
  20. state = "Dessin";
  21. }
  22. override public function isRealShapeDrawer():Boolean
  23. {
  24. return true;
  25. }
  26. override public function clickHandler(e:MouseEvent):void
  27. {
  28. if(teller == 0){
  29. rectangle = new Rectangle(drawer);
  30. g = rectangle.newGraphics.getGraphics();
  31. teller = 1;
  32. rectangle.xPosition = Getter.stageToDrawfieldX(e.stageX);
  33. rectangle.yPosition = Getter.stageToDrawfieldY(e.stageY);
  34. g.moveTo(0,0);
  35. }
  36. else{
  37. if(rectangle.myWidth != 0 || rectangle.myHeight != 0){
  38. teller = 0;
  39. if(State.full){
  40. g.beginFill(rectangle.newGraphics.color);
  41. rectangle.full = 1;
  42. }
  43. else rectangle.full = 0;
  44. g.drawRect(0,0,rectangle.myWidth,rectangle.myHeight);
  45. g.endFill();
  46. drawer.addElement(rectangle);
  47. }
  48. }
  49. }
  50. override public function moveHandler(e:MouseEvent):void
  51. {
  52. if(teller == 1){
  53. graphics.clear();
  54. graphics.lineStyle(rectangle.thickness,0x000000, 1, true, LineScaleMode.NORMAL, null,JointStyle.MITER,3);
  55. if(State.full)
  56. graphics.beginFill(rectangle.newGraphics.color);
  57. if(!e.shiftKey){
  58. rectangle.myWidth = Getter.stageToDrawfieldX(e.stageX)-rectangle.xPosition;
  59. rectangle.myHeight = Getter.stageToDrawfieldY(e.stageY)-rectangle.yPosition;
  60. }
  61. else{
  62. if(Math.abs(Getter.stageToDrawfieldX(e.stageX) - rectangle.xPosition) > Math.abs(Getter.stageToDrawfieldY(e.stageY) - rectangle.yPosition)){
  63. rectangle.myWidth = Getter.stageToDrawfieldX(e.stageX)-rectangle.xPosition;
  64. if((Getter.stageToDrawfieldX(e.stageX)-rectangle.xPosition)*(Getter.stageToDrawfieldY(e.stageY)-rectangle.yPosition) > 0)
  65. rectangle.myHeight = rectangle.myWidth;
  66. else rectangle.myHeight = - rectangle.myWidth;
  67. }
  68. else {
  69. rectangle.myHeight = Getter.stageToDrawfieldY(e.stageY)-rectangle.yPosition;
  70. if((Getter.stageToDrawfieldX(e.stageX)-rectangle.xPosition)*(Getter.stageToDrawfieldY(e.stageY)-rectangle.yPosition) > 0)
  71. rectangle.myWidth = rectangle.myHeight;
  72. else rectangle.myWidth = - rectangle.myHeight;
  73. }
  74. }
  75. graphics.drawRect(rectangle.xPosition,rectangle.yPosition,rectangle.myWidth,rectangle.myHeight);
  76. }
  77. }
  78. }
  79. }