Bajé un fla que hace lo que en principio necesité: armar un rompecabezas, utilizando código AS3. Me funciono muy bien pero ahora tengo la necesidad de que las piezas del rompecabezas dos de ellas se "peguen" a la misma instancia. En el original cada pieza se "pega" a la instancia que le corresponde y si la arrastro y suelto en una instancia que no le corresponde, se regresa a su lugar.
Este es el original:
Aquí el código que hace que todo funcione:
Código ActionScript :
var startX:Number;
var startY:Number;
var counter:Number = 0;
square_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
square_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
triangle_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
triangle_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
flower_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
flower_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
pentagon_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
pentagon_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);
function pickUp(event:MouseEvent):void {
event.target.startDrag(true);
reply_txt.text = "";
event.target.parent.addChild(event.target);
startX = event.target.x;
startY = event.target.y;
}
function dropIt(event:MouseEvent):void {
event.target.stopDrag();
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){
reply_txt.text = "Good Job!";
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
event.target.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
event.target.buttonMode = false;
event.target.x = myTarget.x;
event.target.y = myTarget.y;
counter++;
} else {
reply_txt.text = "Try Again!";
event.target.x = startX;
event.target.y = startY;
}
if(counter == 4){
reply_txt.text = "Congrats, you're finished!";
}
}
square_mc.buttonMode = true;
flower_mc.buttonMode = true;
triangle_mc.buttonMode = true;
pentagon_mc.buttonMode = true;
Lo bajé de esta página:
http://monkeyflash.com/tutorials/flash-drag-and-drop/
He modificado el comportamiento y más o menos lo entiendo pero al no saber AS3 no soy capaz de modificar la estructura.
Si alguien puede orientarme, decirme más o menos por donde debo atacar el problema, se los agradecería muchísimo.
Que tengan un buen día.
Saludos.
