2012-04-04 51 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