原文:http://bbs.9ria.com/thread-68148-1-1.html
写写我对注册点和中心点的看法:
很多FLASH设计师经常会控制场景里的元件属性,例如坐标,透明度,缩放等等,但元件的坐标一直是困扰很多人的一个问题。经常看到有人提问:为什么我用AS控制元件的坐标有的时候准确,有的时候又不准确啊?是不是我FLASH软件出问题了?还是FLASH本身出现了BUG?其实不是这样的,这是FLASH设计者没有正确认识FLASH的坐标。
当我们点击场景里的一个元件,我们会发现上面有两个标记,一个是十字,一个是圆圈(也有情况是二者重合),其中十字代表的是注册点,圆圈代表的是元件的中心点。他们有什么区别呢?我们来做个小小的测试。
首先我们在场景里画一个矩形,然后F8转化为元件,转化时有一个小的细节需要注意一下,在类型选择旁边还有一个“注册”选项,其实这里也是可以选择的,并不是一个只供“查看”的属性,我们可以试一下,九个小方格都是可以点击的,我们选择左上角的小方格建立一个元件。这个时候我们会发现我们建立的元件十字在元件左上角,圆圈在元件中心,也就是说我们建立了一个元件,它的注册点是左上角。(也可以尝试选择不同的方格,结果证明选中的方格即代表注册点的位置)。
下面我们就来使用注册点和中心点了。我们可以在IDE环境下试着更改元件的坐标,缩放,会发现坐标是以中心点,也就是那个圆圈为参照的,缩放也是以中心点为参照,都与注册点没有任何关系。这里还有一个需要注意的细节,我们打开信息面板,我们会发现元件的信息面板上同样也有一个跟刚才建立元件时同样出现的那个九分格,不过我们只能选择左上角和中心,选择一下我们会发现元件的坐标在信息面板上会发生变化,而实际我们看到的位置是没有变化的,元件上的圆圈位置也没有变化。这里其实更改的是IDE环境下坐标参照点,而IDE下的形变参照点依然是圆圈。因此我们得出结论,在IDE环境下控制元件的坐标,参照点是看信息面板上设置的参照位置,默认是元件中心;形变参照点是元件的中心点,也就是元件上的圆圈标记(在形变工具Q的作用下,这个点位置也是可以自由调整的)。
接着我们来使用AS控制坐标和缩放。为了对比明显,我们可以把元件复制一份在原位置,然后控制另外一个元件。例如我们给它一个实例名mc,然后写上脚本:
mc.addEventListener(MouseEvent.MOUSE_DOWN,mcMouseDown);
function mcMouseDown(event:MouseEvent):void
{
mc.x=mc.y=200;
mc.scaleX=mc.scaleY=2;
}
测试证明,使用AS控制时,元件的参照点是注册点位置,也就是十字的位置。
经过上面的试验我们可以得出一个结论:在FLASH IDE下控制元件的坐标,参照点是元件信息面板上选择的参照点,默认是元件中心点;控制元件缩放,参照点是元件中心点,也就是圆圈所在位置;使用AS控制元件的坐标和缩放,参照点都是元件的注册点,也就是元件上的十字标记。