Skip to main content
April 14, 2013
Answered

Need help creating a score system...

  • April 14, 2013
  • 1 reply
  • 972 views

Hey guys,

I have followed an online tutorial, I now need a score system that will make it so when all of the items are dropped onto the right location the user can click a button and move onto the next frame, I've tried several things but none of them have worked, so I thought you guys might be able to help me...

Here is my code:

stop();

//http://passyworldofict.blogspot.co.uk/

var objectoriginalX:Number;

var objectoriginalY:Number;

germany_mc.buttonMode = true;

germany_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

germany_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);

france_mc.buttonMode = true;

france_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

france_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);

italy_mc.buttonMode = true;

italy_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

italy_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);

uk_mc.buttonMode = true;

uk_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

uk_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);

function pickupObject(event:MouseEvent):void {

event.target.startDrag(true);

event.target.parent.addChild(event.target);

objectoriginalX = event.target.x;

objectoriginalY = event.target.y;

}

function dropObject(event:MouseEvent):void {

event.target.stopDrag();

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

var matchingTarget:DisplayObject = getChildByName(matchingTargetName);

if (event.target.dropTarget != null && event.target.dropTarget.parent ==

matchingTarget){

event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);

event.target.buttonMode = false;

event.target.x = matchingTarget.x;

event.target.y = matchingTarget.y;

} else {

event.target.x = objectoriginalX;

event.target.y = objectoriginalY;

}

}

Any help is much appreciated.

This topic has been closed for replies.
Correct answer Ned Murphy

One way would be to keep a count that you increment each time a correct drop is made,  When the count reaches a value that equates to all objects being properly dropped you can enable the button for moving on.

var count:int = 0;

function dropObject(event:MouseEvent):void {

event.target.stopDrag();

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

var matchingTarget:DisplayObject = getChildByName(matchingTargetName);

if (event.target.dropTarget != null && event.target.dropTarget.parent ==

matchingTarget){

event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);

event.target.buttonMode = false;

event.target.x = matchingTarget.x;

event.target.y = matchingTarget.y;

count++;

if(count == 4){

     buttonName.addEventListener... etc

}

} else {

event.target.x = objectoriginalX;

event.target.y = objectoriginalY;

}

}

1 reply

Ned Murphy
Ned MurphyCorrect answer
Legend
April 14, 2013

One way would be to keep a count that you increment each time a correct drop is made,  When the count reaches a value that equates to all objects being properly dropped you can enable the button for moving on.

var count:int = 0;

function dropObject(event:MouseEvent):void {

event.target.stopDrag();

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

var matchingTarget:DisplayObject = getChildByName(matchingTargetName);

if (event.target.dropTarget != null && event.target.dropTarget.parent ==

matchingTarget){

event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);

event.target.buttonMode = false;

event.target.x = matchingTarget.x;

event.target.y = matchingTarget.y;

count++;

if(count == 4){

     buttonName.addEventListener... etc

}

} else {

event.target.x = objectoriginalX;

event.target.y = objectoriginalY;

}

}

April 14, 2013

Thanks a lot for the help, I changed added my button into the code:

var count:int = 0;

function dropObject(event:MouseEvent):void {

event.target.stopDrag();

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

var matchingTarget:DisplayObject = getChildByName(matchingTargetName);

if (event.target.dropTarget != null && event.target.dropTarget.parent ==

matchingTarget){

event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);

event.target.buttonMode = false;

event.target.x = matchingTarget.x;

event.target.y = matchingTarget.y;

count++;

if(count == 4){

     youareawinner_btn.addEventListener(MouseEvent.CLICK, p3Win)

 

}

} else {

event.target.x = objectoriginalX;

event.target.y = objectoriginalY;

}

}

function p3Win(evt:MouseEvent):void {

     gotoAndStop(2);

}

My win button is "youareawinner_btn".

When I run the code I get a duplicate functin error on line 51:

function dropObject(event:MouseEvent):void {

Any ideas how to fix it?

Cheers.

Ned Murphy
Legend
April 14, 2013

To fix a duplicate function error, rename one of the functions that you have assigned the same name to.