A Flash Developer Resource Site

Results 1 to 3 of 3

Thread: Drag and Drop Reset Help

  1. #1
    Junior Member
    Join Date
    Mar 2011
    Posts
    3

    Drag and Drop Reset Help

    Hi there, I am working on a drag and drop template, you may recognize the code. I am trying to create a reset button that returns everything to its starting location. Notice this code calls startX and startY, these are the variables that return the drag object if you don't get the right answer. I added a variable called resetX and resetY, and added a reset button that calls these variables when the button pressed. So this code works, however after the button is pressed all drag objects are returned but all the functionality is lost.

    stop();
    var startX:Number;
    var startY:Number;

    //sets start for reset need one set for each object

    var resetX1 = drag1_mc.x;
    var resetY1 = drag1_mc.y;

    var resetX2 = drag2_mc.x;
    var resetY2 = drag2_mc.y;

    var resetX3 = drag3_mc.x;
    var resetY3 = drag3_mc.y;

    var resetX4 = drag4_mc.x;
    var resetY4 = drag4_mc.y;

    // sets the number of drag objects in the scene
    var counter:Number = 0;

    reset_btn.visible = false;


    //Sets up the drag movie clips for Mouse Events( calling the functions pickup and dropit, listed below)
    drag1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    drag1_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);

    drag2_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    drag2_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);

    drag3_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    drag3_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);

    drag4_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
    drag4_mc.addEventListener(MouseEvent.MOUSE_UP, dropIt);

    reset_btn.addEventListener (MouseEvent.CLICK, reset);

    function reset(event:MouseEvent):void {

    drag1_mc.x = resetX1;
    drag1_mc.y = resetY1;

    drag2_mc.x = resetX2;
    drag2_mc.y = resetY2;

    drag3_mc.x = resetX3;
    drag3_mc.y = resetY3

    drag4_mc.x = resetX4;
    drag4_mc.y = resetY4;

    reset_btn.visible = false;
    reply_txt.text = "Put the shapes away!";
    counter = 0;


    }

    // Funtion for the pick up. Called when the mouseDown event occurs. Note the text bellow can be changed to represent anything
    function pickUp(event:MouseEvent):void {
    event.target.startDrag(true);
    reply_txt.text = "Find the correct place";
    event.target.parent.addChild(event.target);
    startX = event.target.x;
    startY = event.target.y;
    }
    // Function for drop, looks for the mouse event mousedown, to see if the object is dropped on the target, if not it goes back to the its start location
    function dropIt(event:MouseEvent):void {
    event.target.stopDrag();

    var myTargetName:String = "target" + event.target.name;

    var myTargetisplayObject = 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;
    }
    //counts total set at the top
    if(counter == 4){
    reply_txt.text = "Congrats, you're finished!";
    reset_btn.visible = true;
    }
    }

    // makes the drag objects (movie clips) function like buttons
    drag1_mc.buttonMode = true;
    drag2_mc.buttonMode = true;
    drag3_mc.buttonMode = true;
    drag4_mc.buttonMode = true;

  2. #2
    Will moderate for beer
    Join Date
    Apr 2007
    Location
    Austin, TX
    Posts
    6,801
    Please format your code with [code] tags.

    Type your variables. This doesn't directly lead to any errors in this case, but you should do it anyway.

    dropIt can remove the MOUSE_DOWN and MOUSE_UP listeners, so you'll want to re-add them in reset.

  3. #3
    Junior Member
    Join Date
    Mar 2011
    Posts
    3

    Thanks I fixed it

    Thank you, I did indeed add each buttons addeventListener to the reset buttons function, and it fixed the problem.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center