2009年6月3日水曜日

AS3 2点間の距離を計測

メモメモ…

-------------------------------------------
1人でこつこつActionScript3.0アニメーションを読み進める会。。

2つの座標の距離を計測してテキストボックスに出力します。

なんてことのないプログラムです。

肝なのは、

var dx:Number = mouseX - sprite.x;
var dy:Number = mouseY - sprite.y;

var dist:Number = Math.sqrt(dx * dx + dy * dy);


ピタゴラスの定理。

まさか人生でまたこの名前を聞くとは。。算数役に立つやん。

ソース。

package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;

public class MouseDistance extends Sprite
{

private var sprite:Sprite;
private var textField:TextField;

public function MouseDistance()
{
init();
}

public function init():void
{
sprite = new Sprite();
addChild(sprite);

sprite.graphics.beginFill(0x000000);
sprite.graphics.drawRect(-2, -2, 4, 4);
sprite.graphics.endFill();

sprite.x = 100;
sprite.y = 100;

textField = new TextField();
addChild(textField);

stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove_stage);
}


private function onMouseMove_stage(evt:MouseEvent):void
{
graphics.clear();
graphics.lineStyle(1, 0, 1);
graphics.moveTo(sprite.x, sprite.y);
graphics.lineTo(mouseX, mouseY);

var dx:Number = mouseX - sprite.x;
var dy:Number = mouseY - sprite.y;

var dist:Number = Math.sqrt(dx * dx + dy * dy);
textField.text = dist.toString();
}
}
}



自己満足。

------------------------------------------

参照元:2点間の距離を計測するプログラム