Flash as3了解localToGlobal

Flash as3了解localToGlobal,flash,actionscript-3,Flash,Actionscript 3,我只是在理解Flash的localToGlobal功能方面有点困难。我有一个movieClip,它嵌套在一大堆其他movieClip中。单击该嵌套片段时,我希望找到其位置,并移动包含该片段的最上面的片段,移动量应确保嵌套片段位于舞台的中心(基本上我拥有的是一个树形图,我想要的效果是树容器平移到单击的“分支”作为舞台的中心) 所以我有这个: var treePoint = new Point (treeContainer.x,treeContainer.y); //since treePoint'

我只是在理解Flash的localToGlobal功能方面有点困难。我有一个movieClip,它嵌套在一大堆其他movieClip中。单击该嵌套片段时,我希望找到其位置,并移动包含该片段的最上面的片段,移动量应确保嵌套片段位于舞台的中心(基本上我拥有的是一个树形图,我想要的效果是树容器平移到单击的“分支”作为舞台的中心)

所以我有这个:

var treePoint = new Point (treeContainer.x,treeContainer.y); //since treePoint's parent is the stage, don't need global here.

var groupPoint = new Point (groupClip.x,groupClip.y);
var groupPointGlobal = groupClip.localToGlobal(groupPoint);
var stageCenter = new Point (int(stage.stageWidth/2),int(stage.stageHeight)/2);

var shiftAmount = ???

感谢您提供的帮助。

剪辑的x、y位置始终相对于其父剪辑。因此,除非它是阶段的子级,或者父级为0,0,否则您可以使用localToGlobal提供它在阶段上的位置

var globalPoint:Point = myClip.localToGlobal(new Point(0,0));
这将为您提供该剪辑的全局位置

但从它的声音来看,你想走另一条路,做环球旅行,对吗

GlobalTopolocal将基于全局位置返回本地位置

所以,若您想设置剪辑的本地位置,使其位于屏幕的中心,那个么假设它是320240

var localPoint:Point = myClip.parent.globalToLocal(new Point(320,240));
myClip.x = localPoint.x;
myClip.y = localPoint.y;
我们使用父对象,因为这是剪辑的相对对象


有意义吗?

啊-我知道我做错了什么-我确实想去localToGlobal,但我需要通过上面的方法设置globalPoint。我试着使用组剪辑的坐标设置GlobalTopolocal,而不是通过舞台的0,0位置。酷,我不确定你到底想做什么,但我想每种方法都有帮助。