我想通过拖放进行配对。有三个项目应该在舞台上相应的其他三个项目上移动。但是我可以预测添加子项动态地改变所有索引(z /深度/无论如何)。因此,当意外地'有人在一对配对上盘旋,鼠标将在项目上方,但拖后一个站在后面。当时'放弃'可能会破坏该计划。
有没有办法避免这种情况?任何帮助都将非常感谢。
答案 0 :(得分:1)
您应该首先设置拖动对象:
Sprite(draggingObject.parent).setChildIndex(draggingObject, Sprite(draggingObject.parent).numChildren - 1);
你还需要在舞台值上听MOUSE_UP事件。
工作示例:
import flash.display.Sprite;
import flash.events.MouseEvent;
var container:Sprite = new Sprite();
var dragged:Sprite;
addChild(container);
var card:Sprite;
for (var j:uint = 0; j < 10; j++) {
card = new Sprite();
container.addChild(card);
card.buttonMode = true;
card.graphics.beginFill(0x000000);
card.graphics.drawRect(0,0,30,30);
card.x = j*40;
card.addEventListener(MouseEvent.MOUSE_DOWN, stardDragListener);
}
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragEvent);
function stardDragListener(e:MouseEvent):void {
dragged = Sprite(e.currentTarget);
Sprite(dragged.parent).setChildIndex(dragged, Sprite(dragged.parent).numChildren - 1)
dragged.startDrag();
}
function stopDragEvent(e:MouseEvent):void {
if (dragged) dragged.stopDrag();
}