Pointクラス
June 4, 2007
ポイントは二次元座標系の位置を表します。
ポイントを作成するにはxプロパティとyプロパティを指定します。
var p1:Point = new Point(10,10);// x:10, y:10
var p2:Point = new Point();
p2.x = 20;
p2.y = 20;
ポイント間の距離を調べるにはdistance()メソッドを使います。
var distance:Number = Point.distance(p1,p2);
trace(distance);// 出力 14.142135623730951
つづけて、グローバル座標について考えてみたいと思います。
そこでまず、ステージのx座標10、y座標10の位置に矩形sq1を作成します。
var sq1:Sprite = new Sprite();
addChild(sq1);
sq1.graphics.beginFill(0x999999,1.0);
sq1.graphics.drawRect(0,0,20,20);
sq1.graphics.endFill();
sq1.x = 10;
sq1.y = 10;
sq1の表示リストにsq2を追加します。
そのとき、sq2のx座標、y座標は10とします。
var sq2:Shape = new Shape();
sq1.addChild(sq2);
sq2.graphics.beginFill(0x666666,1.0);
sq2.graphics.drawRect(0,0,20,20);
sq2.graphics.endFill();
sq2.x = 10;
sq2.y = 10;
次のtrace文で出力されるのはsq1を基準とする座標となります。
trace(sq2.x, sq2.y);// 出力 10 10
sq2について、ステージを基準とする座標を求めるにはlocalToGlobal()メソッドを使います。
var gP2:Point = new Point(sq2.x,sq2.y);
gP2 = sq2.localToGlobal(gP2);
trace(gP2.x, gP2.y);// 出力 30 30
次に、polar()メソッドを使ってみます。
polar()メソッドはパラメータに距離と角度(ラジアン)を指定し、その距離と角度(ラジアン)をもとに座標を返します。
まず、矩形をx座標、y座標ともに20の位置に配置します。
var square:Sprite = new Sprite();
addChild(square);
square.graphics.beginFill(0x666666);
square.graphics.drawRect(0,0,40,40);
square.graphics.endFill();
square.x = 20;
square.y = 20;
距離150ピクセル分、30°の方向に矩形を移動させるには次のようにします。
var distance:Number = 150;
var radian:Number = 30 * Math.PI/180;
var translatePoint:Point = Point.polar(distance, radian);
square.x += translatePoint.x;
square.y += translatePoint.y;
参考URL
Adobe Flex 2 リファレンスガイド flash.geom.Pointクラス
カテゴリー:
Trackback
Trackback URL for this entry:



















