Я добавляю несколько экземпляров 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.
Любая помощь будет оценена. Даже если это пойдет сюда> прочитайте это. Спасибо