Egret局部坐标和世界坐标

点击量:217

Egret局部坐标和世界坐标


改变局部坐标

let container: egret.DisplayObjectContainer = null;
container.x = 17;
container.y = 212;

显示对象定位系统将舞台视为一个笛卡尔坐标系(带有水平 x 轴和垂直 y 轴的常见网格系统)。坐标系的原点(x 和 y 轴相交的 0,0 坐标)位于舞台的左上角。从原点开始,x 轴的值向右为正,向左为负,而 y 轴的值向下为正,向上为负(与典型的图形系统相反)。例如,通过前面的代码行可以将对象 container 移到 x 轴坐标 17(原点向右 17 个像素)和 y 轴坐标 212(原点向下 212 个像素)。

默认创建显示对象时,x 和 y 属性均设置为 0,对象在其父容器的左上角。

即:

原点在屏幕左上角。
横轴使用X表示,向右为正。
纵轴使用Y表示,向下为正。


局部坐标和世界坐标转换

var container: egret.DisplayObjectContainer = new egret.DisplayObjectContainer();
container.x = 200;
container.y = 200;
this.addChild(container);
var childShape: egret.Shape = new egret.Shape();
container.addChild(childShape);
container.x = 100;
container.y = 100;
  • 把舞台左上角的坐标(50,50)转换为 container 内部的局部坐标
var targetPoint: egret.Point = container.globalToLocal(50, 50);
container.x = targetPoint.x;
container.y = targetPoint.y;
  • 把container坐标(100,100)转换世界坐标
var globalPoint: egret.Point = container.localToGlobal(container.x, container.y);

参考

http://developer.egret.com/cn/github/egret-docs/Engine2D/displayObject/transform/index.html