2013-01-13 53 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