Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import com.rtl.FastMath;
- import com.rtl.Vector2D;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.geom.Point;
- /**
- * @author RTLShadow
- */
- public class SunRay extends Sprite
- {
- static public const ORIGIN:Point = new Point( 0, 0 );
- private var startA:Number;
- private var endA:Number;
- private var startV:Vector2D;
- private var endV:Vector2D;
- public function SunRay( startAngle:Number, endAngle:Number )
- {
- addEventListener( Event.ADDED_TO_STAGE, init );
- startA = startAngle;
- endA = endAngle;
- }
- private function init( e:Event ):void
- {
- removeEventListener( Event.ADDED_TO_STAGE, init );
- draw();
- }
- private function draw():void
- {
- var dist:Number = findDistance( x, y );
- startV = new Vector2D( dist, startA )
- endV = new Vector2D( dist, endA );
- graphics.clear();
- graphics.beginFill( 0xFFFF00, 1 );
- graphics.lineTo( startV.addToPoint( new Point( 0, 0 ) ).x, startV.addToPoint( new Point( 0, 0 ) ).y );
- graphics.lineTo( endV.addToPoint( new Point( 0, 0 ) ).x, endV.addToPoint( new Point( 0, 0 ) ).y );
- graphics.lineTo( 0, 0 );
- graphics.endFill();
- }
- public override function set x( newX:Number ):void
- {
- super.x = newX;
- draw();
- }
- public override function set y( newY:Number ):void
- {
- super.y = newY;
- draw();
- }
- public function get startAngle():Number
- {
- return startA;
- }
- public function set startAngle( sA:Number ):void
- {
- startA = sA;
- startV.angle = startA;
- draw();
- }
- public function get endAngle():Number
- {
- return endA;
- }
- public function set endAngle( eA:Number ):void
- {
- endA = eA;
- endV.angle = endA;
- draw();
- }
- private function findDistance( x:Number, y:Number ):Number
- {
- var dist1:Number = FastMath.calculateDistance( x, y, 0, 0 );
- var dist2:Number = FastMath.calculateDistance( x, y, stage.stageWidth, 0 );
- var dist3:Number = FastMath.calculateDistance( x, y, stage.stageWidth, stage.stageHeight );
- var dist4:Number = FastMath.calculateDistance( x, y, 0, stage.stageHeight );
- return FastMath.largestNum([ dist1, dist2, dist3, dist4 ] );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement