动作脚本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将从哪里开始测量?
左上角?精灵的中心?或...?
请赐教,谢谢你们!
最诚挚的问候。
答案 0 :(得分:1)
原点始终是对象的左上角。 x
正向和向左向积极增长; y
向底部积极增长,向顶部积极向负。
0,0 ---- 5,0
| |
| |
| |
0,5 ---- 5,5
因此,舞台/根对象的原点是SWF的左上角,因为它的坐标是0,0
。如果将显示对象添加到根对象并将其x
和y
设置为5,(mc.x = 5; mc.y = 5;
),并在其0,0
的本地坐标上绘制一条线15,15
该行将在全局坐标上从5,5
绘制到20,20
。
查看DisplayObject课程的localToGlobal
和globalToLocal
方法。
答案 1 :(得分:0)
我认为您的困惑来自Flash中坐标系的分层特性。绘制Sprite时,传递给图形方法(例如lineTo)的x和y值是相对于精灵坐标系测量的。移动精灵的.x和.y将移动精灵图形中的所有内容。因此,如果精灵最初位于(0,0)并运行上面的代码,那么大部分绘图都在屏幕外(因为它绘制为负x和y值。如果在上面的代码运行之后,你移动了精灵到(14,7),所有的线都是可见的(只是勉强)。