动态MC与localToGlobal问题的路径

时间:2010-09-27 15:55:07

标签: flash actionscript-3 dynamic path

我正在将MC(bread_mc)的几个实例添加到容器MC(wall_mc)中。 wall_mc已被添加到商店类,这就是我称之为其余功能的地方。 wall_mc也是用鼠标X和X左右滚动的。 mouseY值。我已经设置了一个函数来将bread_mc添加到不同x / y位置的墙上。

函数调用:

fillShelves(bread_mc,Bread,600,200);

功能:

 function fillShelves(productMc:MovieClip,className:Class,productX:Number, productY:Number) {

        newProduct = new className();
        newProduct.x=productX;
        newProduct.y=productY;
        shelf_mc.addChildAt(newProduct,1);

        newProduct.addEventListener(MouseEvent.MOUSE_DOWN, dragProduct, false, 0, true);

    }

我添加了一个拖放,其中bread_mc会快速回到它的架子x / y位置。但是我想在bread_mc上的用户MOUSE_DOWN时将其添加到最高深度,因此,在拖动时,它会停留在其他mc的前面(例如,有购物车的人)。

我的问题是,每当我调用函数dragProduct();

function dragProduct(e:MouseEvent):void {

    currMC = (e.target as MovieClip);
    this.addChild(currMC); 
    stage.addEventListener(MouseEvent.MOUSE_UP, dropProduct);

    }

我点击的该死的bread_mc向右移动了与我滚动wall_mc相同的数量。我试图强迫currMC坚持使用mouseX / Y但是这需要一个ENTER_FRAME函数,这看起来很复杂。

我研究并找到了localToGlobal。方法与此类似:

point = new Point(currMC.x, currMC.y);
    currMC.localToGlobal(point);
    trace(point.x);

我甚至不知道我是否正确使用它,但我认为我的问题在于我需要currMC路径向上移动显示列表树并获得全局舞台X / Y位置。我不太确定如何使用localToGlobal方法实现动态路径。

任何帮助将不胜感激。即使它在这里>读这个。感谢

1 个答案:

答案 0 :(得分:0)

您拖动的bread_mc moveclip会移动,因为它正在移动到具有不同来源的其他容器。在fillShelves功能中,您将bread_mc作为shelf_mc的孩子添加。但是在dragProduct函数中,您要将其添加到this。只需尝试将bread_mc添加到shelf_mc而不是this。并忘记所有localToGlobal的东西。

当你致电addChild时,它会将目标带到所有兄弟姐妹的前面。