as3,中顯示對(duì)象的localToGlobal與globalToLocal在as3語(yǔ)言參考上說(shuō)明不是很詳細(xì):
2方法的作用是:將坐標(biāo)在 局部坐標(biāo)系與全局坐標(biāo)系 進(jìn)行轉(zhuǎn)換. 由于元件的坐標(biāo)系是自身的容器,所以必須用元件的parent來(lái)調(diào)用 下面分析下:
var s:Sprite = new Sprite(); s.x = 100; s.y = 100; addChild(s); var s1:Sprite = new Sprite(); s1.x = 100; s1.y = 100; s.addChild(s1); var s2:Sprite = new Sprite(); s2.x = 100; s2.y = 100; s1.addChild(s2); 要獲取s2的舞臺(tái)坐標(biāo)(全局坐標(biāo)系),則必須使用s2的parent的localToGlobal方法.
var pt:Point = s2.parent.localToGlobal(new Point(s2.x,s2.y)); trace(pt); 現(xiàn)在打印的坐標(biāo)是:s2在舞臺(tái)坐標(biāo)系中的坐標(biāo). 反之,要獲取舞臺(tái)上某點(diǎn)在s2坐標(biāo)空間中的坐標(biāo),也必須使用s2.parent的globalToLocal方法.
trace(s2.parent.globalToLocal(pt)); 現(xiàn)在打印的坐標(biāo)是:舞臺(tái)上的pt點(diǎn)在s2所在坐標(biāo)系(就是它的容器)的坐標(biāo) 便于記憶的話,則需要記住localToGlobal與globalToLocal都需要使用顯示對(duì)象的parent來(lái)調(diào)用,因?yàn)轱@示對(duì)象的坐標(biāo)空間是相對(duì)于它自身的容器來(lái)說(shuō)的. |
|