2012-04-04 48 views
0

我改變了問題,因爲它似乎是一個目標沒有註冊兒童MC /或嵌套的影片剪輯的問題。AS#3目標忽略父級影片剪輯

var box:Box = new Box(); 
    ground.push(box); 
    levelPlane.addEventListener(MouseEvent.MOUSE_DOWN, onOver); 
    box.x = box.width /2* (x + y); 
    box.y = box.height/2 * (x - y); 
    levelPlane.addChild(box); 

    function onOver(e:MouseEvent):void{ 
    var tree1:Tree1 = new Tree1(); 
    addChild(tree1) 
    trace(e.target.x); 
    tree.x = e.target.x; 
    } 

如何定位主MovieClip(levelPlane)內的動畫片段(BOX)? 想象我在MovieClip裏嵌套了10個盒子叫做「levelPlane」我想點擊任何盒子在盒子上添加另一個Mc,我點擊了x,y位置。

回答

1

如果我理解正確,您試圖將新創建的影片剪輯放在另一個的頂部,但它們不在同一座標空間內。目標的座標必須翻譯爲tree1的座標空間,因爲它們都具有相同的位置:

var tree1:Tree1 = new Tree1(); 
addChild(tree1); 

var global:Point = e.target.parent.localToGlobal(new Point (e.target.x, e.target.y)); 
var local:Point = globalToLocal(global); 
tree1.x = local.x; 
tree1.y = local.y; 
+0

冠軍,如此接近,我將不得不返回它作爲這些新的MC樹正在影響全球原因在那裏方式..謝謝 – joshua 2012-04-04 07:35:13

1

Event.currentTarget屬性引用處理事件的當前對象,即偵聽器對象。如果要引用分派事件的對象,請使用e.target

+0

我知道。使用兩者仍然有相同的結果 – joshua 2012-04-04 05:08:19

+0

讓我試着更多地理解你的問題:你想創建一個新的影片剪輯,並將其添加到鼠標點擊位置現有的影片剪輯? – constantine1 2012-04-04 05:25:24

+0

不是鼠標,因爲我可以使用tree1.x = mouseX;我希望能夠將mc添加到我剛剛單擊的mc的位置 – joshua 2012-04-04 05:30:36