大家讨论来讨论去,版主也不发言。
偶通过实验,有几点体会:
1、在创建子剪辑时,是否把它的坐标定位成(0,0),与此问题无关。
2、虽然有把全局坐标转换成本地坐标的代码,但对于此问题不适用。
3、没有把本地坐标转换成全局坐标的代码。
但是,我们可以通过表达式把本地坐标转换成全局坐标:
子元件实例的坐标=子元件实例的本地坐标+父级元件实例在主场景中的坐标。
根据这一思路,本例可以有两种解决办法:
1、把代码写在主场景中。假设半圆实例和曲线实例的名字分别是:mc2,mc3.二者组合后的实例在主场景中叫mc1.可以用如下代码实现楼主的效果:
onEnterFrame=function(){
if(_root.mc1.mc3.hitTest(_root.mc1.mc2._x+_root.mc1._x, _root.mc1.mc2._y+root.mc1._y, true )){_root.mc1.mc2._x=root.mc1.mc2._x-50}else{_root.mc1.mc2._x-=2}}
本地坐标转换成全局坐标.swf (771 Bytes)
本地坐标转换成全局坐标.fla (32 KB)
}