Advertisement
Guest User

Untitled

a guest
Nov 28th, 2012
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import com.rtl.FastMath;
  4.     import com.rtl.Vector2D;
  5.     import flash.display.Sprite;
  6.     import flash.events.Event;
  7.     import flash.geom.Point;
  8.    
  9.     /**
  10.      * @author RTLShadow
  11.      */
  12.     public class SunRay extends Sprite
  13.     {
  14.         static public const ORIGIN:Point = new Point( 0, 0 );
  15.        
  16.         private var startA:Number;
  17.         private var endA:Number;
  18.        
  19.         private var startV:Vector2D;
  20.         private var endV:Vector2D;
  21.        
  22.         public function SunRay( startAngle:Number, endAngle:Number )
  23.         {
  24.             addEventListener( Event.ADDED_TO_STAGE, init );
  25.             startA = startAngle;
  26.             endA = endAngle;
  27.         }
  28.        
  29.         private function init( e:Event ):void
  30.         {
  31.             removeEventListener( Event.ADDED_TO_STAGE, init );
  32.            
  33.             draw();
  34.         }
  35.        
  36.         private function draw():void
  37.         {
  38.             var dist:Number = findDistance( x, y );
  39.             startV = new Vector2D( dist, startA )
  40.             endV = new Vector2D( dist, endA );
  41.            
  42.             graphics.clear();
  43.             graphics.beginFill( 0xFFFF00, 1 );
  44.             graphics.lineTo( startV.addToPoint( new Point( 0, 0 ) ).x, startV.addToPoint( new Point( 0, 0 ) ).y );
  45.             graphics.lineTo( endV.addToPoint( new Point( 0, 0 ) ).x, endV.addToPoint( new Point( 0, 0 ) ).y );
  46.             graphics.lineTo( 0, 0 );
  47.             graphics.endFill();
  48.         }
  49.        
  50.         public override function set x( newX:Number ):void
  51.         {
  52.             super.x = newX;
  53.             draw();
  54.         }
  55.        
  56.         public override function set y( newY:Number ):void
  57.         {
  58.             super.y = newY;
  59.             draw();
  60.         }
  61.        
  62.         public function get startAngle():Number
  63.         {
  64.             return startA;
  65.         }
  66.        
  67.         public function set startAngle( sA:Number ):void
  68.         {
  69.             startA = sA;
  70.             startV.angle = startA;
  71.             draw();
  72.         }
  73.        
  74.         public function get endAngle():Number
  75.         {
  76.             return endA;
  77.         }
  78.        
  79.         public function set endAngle( eA:Number ):void
  80.         {
  81.             endA = eA;
  82.             endV.angle = endA;
  83.             draw();
  84.         }
  85.        
  86.         private function findDistance( x:Number, y:Number ):Number
  87.         {
  88.             var dist1:Number = FastMath.calculateDistance( x, y, 0, 0 );
  89.             var dist2:Number = FastMath.calculateDistance( x, y, stage.stageWidth, 0 );
  90.             var dist3:Number = FastMath.calculateDistance( x, y, stage.stageWidth, stage.stageHeight );
  91.             var dist4:Number = FastMath.calculateDistance( x, y, 0, stage.stageHeight );
  92.             return FastMath.largestNum([ dist1, dist2, dist3, dist4 ] );
  93.         }
  94.    
  95.     }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement