标题或多或少是不言自明的,我一直在通过许多不同的教程,我对AS3不太好,完全诚实。 (上图显示了我的目标)
无论如何,我在大多数在线教程中看到的拖放教程都基于一个对象到一个目标或多个对象到多个目标,所以我想知道是否有人能够帮助我,并解释如何让多个对象连接到一个目标。
而且,如果可能使其可切换,例如,如果物体1已经就位于目标上,当我拖动物体2时,则物体1返回其原始位置,物体2代替它。
一个更简单的方法来解释这是说,我试图创建一个游戏,有三个雕像,用户可以选择三个之一放置在设定的目标区域。
我很抱歉,如果我说的没有多大意义,如果这会导致混淆,将清理任何东西。这是我目前使用的AS3代码。
var startX:int;
var startY:int;
circle1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circle1_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
circle2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circle2_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
circle3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circle3_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
function pickUp(event:MouseEvent):void {
startX = event.target.x;
startY = event.target.y;
event.target.startDrag(true);
event.target.parent.addChild(event.target);
}
function dropIt(event:MouseEvent):void {
event.target.stopDrag();
var theTargetName:String = "target" + event.target.name;
var theTarget:DisplayObject = getChildByName(theTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == theTarget){
event.target.buttonMode = false;
event.target.x = theTarget.x;
event.target.y = theTarget.y;
}
else{
event.target.x = startX;
event.target.y = startY;
circle1_mc.buttonMode = true;
circle2_mc.buttonMode = true;
circle3_mc.buttonMode = true;
你可以把所有的雕像在一个阵列中,有一个'每个... in'声明支票他们全部。另外,最好如果你合并你在这里的两个函数。 – David 2013-03-12 12:40:25