needle test
forked from Fast texture extraction (diff: 123)
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 ();
}
}