Actionscript 3 拖动和放置电影剪辑

Actionscript 3 拖动和放置电影剪辑,actionscript-3,movieclip,flash-cs6,Actionscript 3,Movieclip,Flash Cs6,我正在尝试使用AS3制作一个动画,它包括在一些矩形(位图)中拖动和放置movieclips(小图像),然后按照与沿矩形放置相同的顺序呈现对应于movieclips的图像(大图像) 然而,有一个小技巧,我有一些困难。当一个movieclip被放置在一个矩形中,我尝试将另一个movieclip拖动到同一个矩形中时,我正在拖动的那个应该返回到初始位置。我的代码有时可以工作,但其他代码则不行(仍然可以将movieclip放在另一个上面或下面) 另一个问题是:我如何使我拖动的电影唇始终位于另一个电影唇之上

我正在尝试使用AS3制作一个动画,它包括在一些矩形(位图)中拖动和放置movieclips(小图像),然后按照与沿矩形放置相同的顺序呈现对应于movieclips的图像(大图像)

然而,有一个小技巧,我有一些困难。当一个movieclip被放置在一个矩形中,我尝试将另一个movieclip拖动到同一个矩形中时,我正在拖动的那个应该返回到初始位置。我的代码有时可以工作,但其他代码则不行(仍然可以将movieclip放在另一个上面或下面)

另一个问题是:我如何使我拖动的电影唇始终位于另一个电影唇之上而不是之下?(有时它们在上面,有时在下面)

提前谢谢。致以最良好的祝愿

这是我的密码:

function returnToInitial(k:int){
this["foto"+String(k)+"_mc"].x = this["foto"+String(k)+"_mc"].iniX;
this["foto"+String(k)+"_mc"].y = this["foto"+String(k)+"_mc"].iniY;}

for(i=1; i<7; i++){
  this["foto"+String(i)+"_mc"].addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
  this["foto"+String(i)+"_mc"].num = i;
  if(i <= 3){
    this["foto"+String(i)+"_mc"].iniX = (160*i)+(i-1)*100;
    this["foto"+String(i)+"_mc"].iniY = 100;
  }else if(i > 3){
    this["foto"+String(i)+"_mc"].iniX = (160*(i-3))+((i-3)-1)*100;;
    this["foto"+String(i)+"_mc"].iniY = 260;
  }
}

function startDragging(me:MouseEvent):void {
  stage.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
  MovieClip(me.currentTarget).startDrag(true);
  currentDragged = MovieClip(me.currentTarget);}

function stopDragging(evt:Event):void {
  stage.removeEventListener(MouseEvent.MOUSE_UP, stopDragging);
  stopDrag();
  checkPosition(currentDragged);}

function firstCheck(mcR:MovieClip){
for(q = 0; q < icons.length; q++){
    if(this[icons[q]].y == 455){
        posX = Math.abs(mcR.x - this[icons[q]].x);
        if(posX < 10){
            returnToInitial(mcR.num);
        }
    }
}
}

function checkPosition(mc:MovieClip){
firstCheck(mc);
if(mc.y > 420 && mc.y < 490){
    mc.y = 455;
    for(k=0; k<6; k++){
        if(mc.x > 60+(k*135) && mc.x < 120+(k*135)){
            mc.x = 90+(k*135);
            array[k] = mc.num;
        }
    }
}
}
函数返回初始值(k:int){
这个[“foto”+字符串(k)+“_-mc”].x=这个[“foto”+字符串(k)+“u-mc”].iniX;
this[“foto”+字符串(k)+“_-mc”].y=this[“foto”+字符串(k)+“u-mc”].ini;}
对于(i=1;i 420和&mc.y<490){
mc.y=455;
对于(k=0;k60+(k*135)和&mc.x<120+(k*135)){
mc.x=90+(k*135);
数组[k]=mc.num;
}
}
}
}

要使要拖动的电影剪辑显示在所有其他内容之上,请将此添加到StartDraging:

setChildIndex(MovieClip(me.currentTarget), this.numChildren-1);