Jigsaw Gone Awry

Hi People, new to the site. Trying to make a jigsaw in Flash CS4 for a project in college but running into trouble.

My code in theory works find but for some reason things aren’t doing what they’re supposed to. Basically I have all my draggable puzzle pieces as movieclips; they start at specific x’s and y’s on the axis. You drag them to the corresponding hitbox movieclip and it pops into the other specific x and y spot on the axis (otherwise they go back to the first xy spot).

The problem is sometimes the pieces drag and drop fine, but other times when you click the mouse down, they drag, but when you let go, they don’t drop! Randomly! They just follow the cursor around, til you click a few times, and then randomly it will drop and not move (when it’s supposed to go back to the original xy position).

My code is a mess (I’m a complete noob)…this is the only way I could figure out how make a jigsaw…

p1_mc to p16_mc = puzzle pieces.

p1hit_mc to p16hit_mc = the hit boxes

Any idea why the above error is happening?


p1_mc.x=13.4
p1_mc.y=69.3
p2_mc.x=459.4
p2_mc.y=32.9
p3_mc.x=176.8
p3_mc.y=69.5
p4_mc.x=393.9
p4_mc.y=94.2
p5_mc.x=479.1
p5_mc.y=159.3
p6_mc.x=482.3
p6_mc.y=244.8
p7_mc.x=373.3
p7_mc.y=31.4
p8_mc.x=241.1
p8_mc.y=97.3
p9_mc.x=390.9
p9_mc.y=187.7
p10_mc.x=74
p10_mc.y=190.6
p11_mc.x=478.6
p11_mc.y=189.5
p12_mc.x=389.6
p12_mc.y=249.1
p13_mc.x=13.3
p13_mc.y=249.6
p14_mc.x=459
p14_mc.y=95.9
p15_mc.x=177.7
p15_mc.y=219.4
p16_mc.x=370.8
p16_mc.y=155.1

var i:int = 0;

p2_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p2_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p4_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p4_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p5_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p5_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p6_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p6_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p7_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p7_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p9_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p9_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p11_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p11_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p12_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p12_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p14_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p14_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

p16_mc.addEventListener(MouseEvent.MOUSE_DOWN,startDragging);
p16_mc.addEventListener(MouseEvent.MOUSE_UP,stopDragging);

function startDragging(myevent:MouseEvent):void {
myevent.target.startDrag();
}

function stopDragging(myevent:MouseEvent):void {
myevent.target.stopDrag();
}

p2hit_mc.alpha=0;
p2_mc.addEventListener(MouseEvent.MOUSE_DOWN,p2Drag);
function p2Drag(myevent:MouseEvent):void {
p2_mc.startDrag();
}

p2_mc.addEventListener(MouseEvent.MOUSE_UP,p2Drop);
function p2Drop(myevent:MouseEvent):void {
p2_mc.stopDrag();

if(p2_mc.hitTestObject(p2hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p2_mc.x=73.3
    p2_mc.y=69.8
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p2_mc.x=459.4
    p2_mc.y=32.9
    i=0;
}
}

p4hit_mc.alpha=0;
p4_mc.addEventListener(MouseEvent.MOUSE_DOWN,p4Drag);
function p4Drag(myevent:MouseEvent):void {
p4_mc.startDrag();
}

p4_mc.addEventListener(MouseEvent.MOUSE_UP,p4Drop);
function p4Drop(myevent:MouseEvent):void {
p4_mc.stopDrag();

if(p4_mc.hitTestObject(p4hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p4_mc.x=259.9
    p4_mc.y=69.2
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p4_mc.x=393.9
    p4_mc.y=94.2
    i=0;
}
}

p5hit_mc.alpha=0;
p5_mc.addEventListener(MouseEvent.MOUSE_DOWN,p5Drag);
function p5Drag(myevent:MouseEvent):void {
p5_mc.startDrag();
}

p5_mc.addEventListener(MouseEvent.MOUSE_UP,p5Drop);
function p5Drop(myevent:MouseEvent):void {
p5_mc.stopDrag();

if(p5_mc.hitTestObject(p5hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p5_mc.x=13.1
    p5_mc.y=130.3
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p5_mc.x=479.1
    p5_mc.y=159.3
    i=0;
}
}

p6hit_mc.alpha=0;
p6_mc.addEventListener(MouseEvent.MOUSE_DOWN,p6Drag);
function p6Drag(myevent:MouseEvent):void {
p6_mc.startDrag();
}

p6_mc.addEventListener(MouseEvent.MOUSE_UP,p6Drop);
function p6Drop(myevent:MouseEvent):void {
p6_mc.stopDrag();

if(p6_mc.hitTestObject(p6hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p6_mc.x=95.3
    p6_mc.y=100.8
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p6_mc.x=482.3
    p6_mc.y=244.8
    i=0;
}
}

p7hit_mc.alpha=0;
p7_mc.addEventListener(MouseEvent.MOUSE_DOWN,p7Drag);
function p7Drag(myevent:MouseEvent):void {
p7_mc.startDrag();
}

p7_mc.addEventListener(MouseEvent.MOUSE_UP,p7Drop);
function p7Drop(myevent:MouseEvent):void {
p7_mc.stopDrag();

if(p7_mc.hitTestObject(p7hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p7_mc.x=157.3
    p7_mc.y=129.4
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p7_mc.x=373.3
    p7_mc.y=31.4
    i=0;
}
}

p9hit_mc.alpha=0;
p9_mc.addEventListener(MouseEvent.MOUSE_DOWN,p9Drag);
function p9Drag(myevent:MouseEvent):void {
p9_mc.startDrag();
}

p9_mc.addEventListener(MouseEvent.MOUSE_UP,p9Drop);
function p9Drop(myevent:MouseEvent):void {
p9_mc.stopDrag();

if(p9_mc.hitTestObject(p9hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p9_mc.x=12.9
    p9_mc.y=162.7
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p9_mc.x=390.9
    p9_mc.y=187.7
    i=0;
}
}

p11hit_mc.alpha=0;
p11_mc.addEventListener(MouseEvent.MOUSE_DOWN,p11Drag);
function p11Drag(myevent:MouseEvent):void {
p11_mc.startDrag();
}

p11_mc.addEventListener(MouseEvent.MOUSE_UP,p11Drop);
function p11Drop(myevent:MouseEvent):void {
p11_mc.stopDrag();

if(p11_mc.hitTestObject(p11hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p11_mc.x=177.6
    p11_mc.y=158.4
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p11_mc.x=478.6
    p11_mc.y=189.5
    i=0;
}
}

p12hit_mc.alpha=0;
p12_mc.addEventListener(MouseEvent.MOUSE_DOWN,p12Drag);
function p12Drag(myevent:MouseEvent):void {
p12_mc.startDrag();
}

p12_mc.addEventListener(MouseEvent.MOUSE_UP,p12Drop);
function p12Drop(myevent:MouseEvent):void {
p12_mc.stopDrag();

if(p12_mc.hitTestObject(p12hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p12_mc.x=259.6
    p12_mc.y=164.1
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p12_mc.x=389.6
    p12_mc.y=249.1
    i=0;
}
}

p14hit_mc.alpha=0;
p14_mc.addEventListener(MouseEvent.MOUSE_DOWN,p14Drag);
function p14Drag(myevent:MouseEvent):void {
p14_mc.startDrag();
}

p14_mc.addEventListener(MouseEvent.MOUSE_UP,p14Drop);
function p14Drop(myevent:MouseEvent):void {
p14_mc.stopDrag();

if(p14_mc.hitTestObject(p14hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p14_mc.x=73
    p14_mc.y=249.6
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p14_mc.x=459
    p14_mc.y=95.9
    i=0;
}
}

p16hit_mc.alpha=0;
p16_mc.addEventListener(MouseEvent.MOUSE_DOWN,p16Drag);
function p16Drag(myevent:MouseEvent):void {
p16_mc.startDrag();
}

p16_mc.addEventListener(MouseEvent.MOUSE_UP,p16Drop);
function p16Drop(myevent:MouseEvent):void {
p16_mc.stopDrag();

if(p16_mc.hitTestObject(p16hit_mc)==true)
{
    posfeed_mc.gotoAndPlay(2);
    p16_mc.x=236.8
    p16_mc.y=250
    i=i+1;
    }
else
{
    negfeed_mc.gotoAndPlay(2);
    p16_mc.x=370.8
    p16_mc.y=155.1
    i=0;
}
}