动作脚本3.0中的Sprite的.x和.y属性从哪里开始测量?从物体的中心?要么.....?

时间:2010-06-29 06:30:13

标签: actionscript-3 graphics sprite

动作脚本3.0中的动画片段的.x和.y属性从哪里开始测量?从物体的中心?或.....?

例如,给定一个以编程方式绘制的Sprite:

            graphics.beginFill(0x000000);
        graphics.moveTo(9.00000000,-7.00000000);
        graphics.lineTo(13.00000000,0.00000000);
        graphics.lineTo(9.00000000,6.00000000);
        graphics.lineTo(-11.00000000,6.00000000);
        graphics.lineTo(-14.00000000,0.00000000);
        graphics.lineTo(-11.00000000,-7.00000000);
        graphics.lineTo(9.00000000,-7.00000000);
        graphics.endFill();

sprite.x和sprite.y将从哪里开始测量?

左上角?精灵的中心?或...?

请赐教,谢谢你们!

最诚挚的问候。

2 个答案:

答案 0 :(得分:1)

原点始终是对象的左上角。 x正向和向左向积极增长; y向底部积极增长,向顶部积极向负。

0,0 ---- 5,0
|         |
|         |
|         |
0,5 ---- 5,5 

因此,舞台/根对象的原点是SWF的左上角,因为它的坐标是0,0。如果将显示对象添加到根对象并将其xy设置为5,(mc.x = 5; mc.y = 5;),并在其0,0的本地坐标上绘制一条线15,15该行将在全局坐标上从5,5绘制到20,20

查看DisplayObject课程的localToGlobalglobalToLocal方法。

答案 1 :(得分:0)

我认为您的困惑来自Flash中坐标系的分层特性。绘制Sprite时,传递给图形方法(例如lineTo)的x和y值是相对于精灵坐标系测量的。移动精灵的.x和.y将移动精灵图形中的所有内容。因此,如果精灵最初位于(0,0)并运行上面的代码,那么大部分绘图都在屏幕外(因为它绘制为负x和y值。如果在上面的代码运行之后,你移动了精灵到(14,7),所有的线都是可见的(只是勉强)。