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