needle test

by makc3d forked from Fast texture extraction (diff: 123)
♥0 | Line 45 | Modified 2016-05-20 06:05:55 | MIT License
play

ActionScript3 source code

/**
 * Copyright makc3d ( http://wonderfl.net/user/makc3d )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/6t3T
 */

// forked from makc3d's Fast texture extraction
package {
	import flash.display.Sprite;
	import flash.events.Event;
        /**
         * Push orange circle around!
         */
	public class HTest extends Sprite {
		public var end:Anchor;
                public var tip:Sprite;
		public function HTest () {
			addChild (end = new Anchor (100, 100));
                        addChild (tip = new Sprite);
                        
                        tip.graphics.beginFill (0xff0000, 1);
                        tip.graphics.moveTo (+50,  0);
                        tip.graphics.lineTo (-42, -5);
                        tip.graphics.lineTo (-42, +5);
                        tip.graphics.endFill();
                        tip.x = 150; tip.y = 100;
                        
                        addEventListener (Event.ENTER_FRAME, loop);
		}
                public function loop (e:Event):void {
                    var dx:Number = tip.x - end.x;
                    var dy:Number = tip.y - end.y;
                    var dL:Number = Math.sqrt (dx * dx + dy * dy);
                    tip.x = end.x + 50 * dx / dL;
                    tip.y = end.y + 50 * dy / dL;
                    tip.rotation = 180 * Math.atan2 (dy, dx) / Math.PI;
                }
	}
}

import flash.display.Sprite;
import flash.events.MouseEvent;
class Anchor extends Sprite {
	public function Anchor (x0:int, y0:int) {
		x = x0; y = y0;
		graphics.beginFill (0xFF7F00, 1);
		graphics.drawCircle (0, 0, 9);
		useHandCursor = buttonMode = true;
		addEventListener (MouseEvent.MOUSE_DOWN, startDragMe);
		addEventListener (MouseEvent.MOUSE_UP, stopDragMe);
	}
	public function startDragMe (e:MouseEvent):void {
		startDrag ();
	}
	public function stopDragMe (e:MouseEvent):void {
		stopDrag ();
	}
}