Динамический путь MC с локальными проблемами ToGlobal - PullRequest
2 голосов
/ 27 сентября 2010

Я добавляю несколько экземпляров MC (bread_mc) в контейнер MC (wall_mc). wall_mc был добавлен в класс магазина, откуда я и получил остальные функции. Также wall_mc прокручивается влево и вправо значениями mouseX и mouseY. Я настроил функцию добавления bread_mc к стене в разных положениях х / у.

Вызов функции:

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. Однако мне бы хотелось, чтобы, когда пользователь MOUSE_DOWN на bread_mc, добавлялся на наибольшую глубину, поэтому при перетаскивании он оставался напротив других 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 голосов
/ 27 сентября 2010

Ваш перетаскиваемый bread_mc moveclip перемещается, потому что он перемещается в другой контейнер, который имеет другое происхождение.В вашей функции fillShelves вы добавляете bread_mc как дочерний элемент shelf_mc.Но в функции dragProduct вы добавляете ее к this.Просто попробуйте добавить bread_mc к shelf_mc вместо this.И забудьте обо всех вещах localToGlobal.

Когда вы звоните addChild, это приведет цель к передней части всех его братьев и сестер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...