彩音 - Adobe AIR - 研究室:XION -Adobe AIR-laboratory
グローバル座標、ローカル座標

座標にはグローバル座標とローカル座標がある。グローバル座標はアプリケーションの左上角を基準と下座標で、ローカル座標はスプライトやムービークリップの中心点を原点とした座標である。ムービークリップの中にムービークリップインスタンスが入っている場合、入れ子で入っているインスタンスの座標は親のムービークリップの中心点を座標の原点としたローカル座標である。

ローカル座標をグローバル座標に変換するには localToGlobal関数で、 mc.localToGlobal(Point) のようにする。引数はPointクラスのオブジェクトである必要がある。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="192" initialize="init()">
<mx:Label x="10" y="10" id="mc1Label" text="" />
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
private var container:UIComponent = new UIComponent();
private var mc1:Sprite = new Sprite();
private function init():void {
container.graphics.beginFill(0x000000);
container.graphics.drawRect(0,0,250,120);
container.x = 50;
container.y = 40;
addChild(container);
mc1.graphics.beginFill(0xFFFFFF);
mc1.graphics.drawCircle(0,0,16);
mc1.x = 150;
mc1.y = 60;
container.addChild(mc1);
var mc1Point:Point = new Point (mc1.x, mc1.y);
var mc1GPoint:Point = mc1.localToGlobal(mc1Point);
mc1Label.text = "グローバル座標は:" + mc1GPoint + "/ローカル座標は:" + mc1Point;
}
]]>
</mx:Script>
</mx:Application>

逆にグローバル座標をローカル座標に変換する場合は globalToLocal() 関数を利用する。

索引