2013-01-13 55 views
0

感谢您花时间阅读我的问题。 所以,我有一个动画片段,我添加到舞台上,里面有另一个动画片段的实例。让我们调用另一个第一个动画片段A.第二个的实例名称将是事物。所以我这样做:Flash协调系统

var a:A = new A(); 
stage.addChild(a); 

而且这很好,a的坐标很好,但a.thing.x总是基于它距离a有多远。有没有办法让a.thing.x显示在舞台的坐标系上? 我希望我能够明确提出我的问题。

+0

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#localToGlobal() – nkint

+0

没有帮助,还是谢谢你! – user1949350

+0

使用术语子/父来描述* a *和* thing *之间的关系会很有帮助。 * thing *是* a *的孩子,因此它的位置相对于它的父母。 – prototypical

回答

0
// position in stage coordinate system 
var targetAbsolutePoint:Point = new Point(100, 100); 

// position in "a" MovieClip coordinate system 
var targetRelativePoint:Point = a.globalToLocal(targetAbsolutePoint); 

// set position 
thing.x = targetRelativePoint.x; 
thing.y = targetRelativePoint.y; 

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#globalToLocal%28%29

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#localToGlobal%28%29

回答你的问题的意见:

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7df5.html

“x” 和相对的DisplayObject的 “Y” 的属性为(0,0)的坐标其父显示对象的轴。所以如果位于(10,50)点的“a”MovieClip和位于(20,40)的“thing”MovieClip指向“a”MovieClip的内部,那么为了找到“thing”MovieClip的绝对坐标,我们应该计算:

X = “x” 的 “一” 的MovieClip + “x” 的 “东西” 坐标的MovieClip = 10 + 20 = 30

Y = “Y” 坐标的坐标“a”MovieClip +“y”coordiante“thing”MovieClip = 50 + 40 = 90

但是b ecause有可能的几个嵌套母的DisplayObject这样的localToGlobal和globalToLocal方法的使用,而不是

absoluteX =我的影片剪辑的X +我的影片剪辑父的X +我的影片剪辑父父的X等

更方便

+0

我还是一个初学者,你能解释为什么targetAbsolutePoint是(100,100)? globalToLocal做什么? – user1949350

+0

点(100,100) - 只是随机值 – kostik

+0

这是有帮助的,作品!万分感谢! – user1949350