Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. package
  2. {
  3. import flash.display.DisplayObject;
  4. import flash.display.Graphics;
  5. import flash.display.GraphicsPathCommand;
  6. import flash.display.Shape;
  7. import flash.display.Sprite;
  8. import flash.display.StageScaleMode;
  9. public class TWIPTest extends Sprite
  10. {
  11. // can change behaviour by switching between createPoint and drawPoint
  12. public function TWIPTest()
  13. {
  14. this.stage.scaleMode = StageScaleMode.NO_SCALE;
  15. // scale our unit square so we can see what is happening
  16. scaleX = 400; scaleY = 400;
  17. // draw grid
  18. var grid : Sprite = new Sprite();
  19. addChild(grid);
  20. grid.graphics.lineStyle(TWIP, 0x888888);
  21. drawGrid(1 / TWIP, 1 / TWIP, TWIP, TWIP, grid);
  22. // center of unit square
  23. var cx : Number = 0.5;
  24. var cy : Number = 0.5;
  25.  
  26. var shape : Shape;
  27. // GREEN in middle of unit square
  28. this.addChild(createPoint(cx, cy, 0x00FF00));
  29. //drawPoint(cx, cy, 0x00FF00, this.graphics);
  30.  
  31. // BLUE one TWIP away from GREEN
  32. this.addChild(createPoint(cx + TWIP, cy + TWIP, 0x0000FF));
  33. //drawPoint(cx + TWIP, cy + TWIP, 0x0000FF, this.graphics);
  34.  
  35. // RED half a TWIP away from GREEN (this does not work....)
  36. this.addChild(createPoint(cx + (TWIP / 2), cy + (TWIP / 2), 0xFF0000, 0.5));
  37. //drawPoint(cx + (TWIP / 2), cy + (TWIP / 2), 0xFF0000, this.graphics, 0.5);
  38.  
  39. // now insert new container to work around limit encontered with RED point
  40. var container : Sprite = new Sprite();
  41. this.addChild(container);
  42. container.scaleX = 0.5; container.scaleY = 0.5;
  43. container.addChild(createPoint(2 * cx + TWIP, 2 * cy + TWIP, 0xFF00FF, 1.0, 2 * TWIP));
  44. //drawPoint(cx + (TWIP / 2), cy + (TWIP / 2), 0xFF00FF, container.graphics);
  45. }
  46. static private function createPoint(x:Number, y:Number,color:uint,alpha:Number=1.0,radius:Number=0.05):Shape
  47. {
  48. var shape : Shape = new Shape();
  49. shape.x = x; shape.y = y;
  50. shape.graphics.beginFill(color,alpha);
  51. shape.graphics.drawCircle(0, 0, radius);
  52. shape.graphics.endFill();
  53. return shape;
  54. }
  55. static private function drawPoint(x:Number, y:Number,color:uint,target:Graphics,alpha:Number=1.0,radius:Number=0.05):void
  56. {
  57. target.beginFill(color,alpha);
  58. target.drawCircle(x, y, radius);
  59. target.endFill();
  60. }
  61. // drawGrid from @Feltope
  62. private function drawGrid(numColumns:Number, numRows:Number, cellHeight:Number, cellWidth:Number, grid:Sprite):void
  63. {
  64. for (var col:Number = 0; col &lt numColumns + 1; col++)
  65. {
  66. for (var row:Number = 0; row &lt numRows + 1; row++)
  67. {
  68. grid.graphics.moveTo(col * cellWidth, 0);
  69. grid.graphics.lineTo(col * cellWidth, cellHeight * numRows);
  70. grid.graphics.moveTo(0, row * cellHeight);
  71. grid.graphics.lineTo(cellWidth * numColumns, row * cellHeight);
  72. }
  73. }
  74. }
  75. static private const TWIP : Number = 0.05;
  76. }
  77. }
  78.  
  79. &ltCanvas RenderTransform="96.201126,0,0,-95.787476,713.62598,207.05859"&gt
  80. &ltPath Data="..." RenderTransform="0.010394889,0,0,-0.010439778,-7.4180626,2.1616458"&gt
  81.  
  82. import flash.display.Shape;
  83. import flash.display.Sprite;
  84. internal class MySprite extends Sprite
  85. {
  86. protected var m_nX:Number;
  87. protected var m_nY:Number;
  88.  
  89.  
  90. override public function get x():Number
  91. {
  92. return m_nX;
  93. }
  94.  
  95. override public function set x(value:Number):void
  96. {
  97. m_nX = value;
  98. super.x = m_nX;
  99. }
  100. override public function get y():Number
  101. {
  102. return m_nY;
  103. }
  104.  
  105. override public function set y(value:Number):void
  106. {
  107. m_nY = value;
  108. super.y = m_nY;
  109. }
  110. }
  111. internal class MyShape extends Shape
  112. {
  113. protected var m_nX:Number;
  114. protected var m_nY:Number;
  115.  
  116.  
  117. override public function get x():Number
  118. {
  119. return m_nX;
  120. }
  121.  
  122. override public function set x(value:Number):void
  123. {
  124. m_nX = value;
  125. super.x = m_nX;
  126. }
  127. override public function get y():Number
  128. {
  129. return m_nY;
  130. }
  131.  
  132. override public function set y(value:Number):void
  133. {
  134. m_nY = value;
  135. super.y = m_nY;
  136. }
  137. }
  138.  
  139. addChild(createPoint(0.51000005, 0.510000049, 0x800000, 1, TWIP));
  140. var disp :DisplayObject = getChildAt(numChildren - 1);
  141. trace(disp.x, disp.y);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement