首先要明確下,舞臺也是一個movieClip,
他的坐標(biāo)原點(diǎn)在左上角(0,0)
其他的影片剪輯坐標(biāo)是注冊點(diǎn)在舞臺的位置,
(注冊點(diǎn):就是剪輯內(nèi)部的十字符號)
本文主要講解嵌套影片剪輯的坐標(biāo),
當(dāng)一個mc(影片剪輯)名為:b_mc,在另一個名為a_mc的剪輯中,
如圖:
b_mc在a_mc內(nèi)部,b_mc的坐標(biāo)是 根據(jù)自身的_x _y和父剪輯a_mc的坐標(biāo)決定的。
所有子影片剪輯的_x _y數(shù)值,永遠(yuǎn)都是本地位置,不會隨著父剪輯的移動而改變。
解決的方法:
1:計(jì)算父剪輯的在全局位置的及子影片剪輯的本地位置
如舞臺里有a,a里面有b
獲取b的坐標(biāo):
1 trace(a._x+a.b._x)
2:localToGlobal()
1 var op0:Object=new Object()//建立一個點(diǎn)對象
2 op0.x=a.b._x//注意op0.x 不是_x
3 op0.y=a.b._y//注意op0.y 不是_y
4 //點(diǎn)對象必須好友x y兩個屬性,必不可少
5 a.localToGlobal(op0)
6 trace(op0.x+" b");
綜合的例子:
1:在舞臺上 畫一個 100*70的藍(lán)色矩形,選中,按F8轉(zhuǎn)為mc
2:對該剪輯的實(shí)例名稱:a
3:在a中繪制一個60*40的粉色矩形,選中,按F8轉(zhuǎn)為mc
4:對該剪輯的實(shí)例名稱:b
5:在b中繪制一個40*30的黃色色矩形,選中,按F8轉(zhuǎn)為mc
6:對該剪輯的實(shí)例名稱:c
在主時間軸上新建一個層,名為as
輸入代碼:
1stop();
2a.onPress = function() {
3 this.startDrag();
4};
5a.onRelease = function() {
6 this.stopDrag()
7 //----------------------------第一個點(diǎn)對象 記錄b的坐標(biāo)
8 var op0:Object=new Object()
9 op0.x=this.b._x
10 op0.y=this.b._y
11 this.localToGlobal(op0)
12 trace(op0.x+" b");
13 //----------------------------第二個點(diǎn)對象 記錄c的坐標(biāo)
14 var op1:Object=new Object()
15 op1.x=this.b.c._x
16 op1.y=this.b.c._y
17 this.b.localToGlobal(op1)
18 trace(op1.x+" c");
19};
20
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。