FLASH软件编辑界面下舞台上元件的坐标和实际在actionscript(以下简称“AS”)中测试中不一样是初学者经常会碰到的问题。大家不免产生疑惑,为什么FLASH的坐标时而准确,时而不准确呢?其实这是大家不了解FLASH计算坐标方式的缘故,其实FLASH中软件操作界面的舞台上计算坐标和AS中计算坐标的的基准点并不一致。接下来我们先在试验中求证,然后再推算出FLASH坐标的运算方式。
首先我们在场景里画一个圆形,然后F8转化为影片剪辑,转化时有一个小的细节需要注意一下(一些使用者都忽视了他),在类型选择旁边更有一个“注册”选项,其实这里也是能够选择的,并不是个只供“查看”的属性,我们能够试一下,九个小方格都是能够点击的,我们选择左上角的小方格建立一个MC。这个时候我们会发现我们建立的MC十字架在MC左上角,圆圈在元件中央,这里的十字架,我们称之为注册点。也就是说我们建立了一个MC,他的注册点是左上角。(也能够尝试选择不同的方格,结果证实选中的方格即代表注册点的位置,当然你也可以通过双击进入元件内部把元件把元件放在距离十字心更不规则的位置)。
让我们再来观察以下信息面板,你会发现它也有一个九宫格,但是只有中心和左上角可以选择,其他点为灰色,这时候点击九宫格的左上角的那个点。
然后给这个影片剪辑命名为a_mc,在属性面板或者信息面板输入他的坐标是0,0。然后你会发现a_mc的位置处于舞台的左上角。如图所示:
然后我们打开动作面板,在面板中输入如下代码:
trace("a_mc._x="+a_mc._x);
trace("a_mc._y="+a_mc._y)
我们成功在输出面板中得到了
a_mc._x=0
a_mc._y=0
软件操作界面中的结果和AS运算的结果是一样的。
这时我们把信息面板中九宫格的中间的那个点点选上,你会发现中间选中的那个点变黑了,左上角的点又变成了白色,如图所示:
这时候我们发现舞台的坐标立马就变成了(x:43.5 y:43.5),那么圆的宽和高都是87,它的坐标正好等于圆的一半。由此可以看出如果我们把信息面板的九宫格选为中间的那个点的话,那软件操作界面计算坐标的基准点我们可以暂时理解为元件的中心(不完全是,现在你先可以这么理解),
我们再用Ctrl+Enter测试查看它在AS中的坐标,发现得到的结果还是:
a_mc._x=0
a_mc._y=0
那么由此可见,FLASH软件操作界面中的计算坐标的方式和AS并不一样,但是起码来说我们现在能找到一个共同点:也就是不管舞台中信息面板中设置元件坐标计算的基准点是左上角还是元件的中心,AS计算坐标的基准点始终是元件的十字心。那让他们的坐标一样用很简单的一个办法就是把你建立的元件的注册点都设置成左上角,然后再信息面板的九宫格也点选左上角,那么AS计算的十字注册点和软件操作界面计算的元件坐标的基准点为同一点,那么他们的结果就一样。
|