Actionscript Code:
package Scripts
{
import flash.events.MouseEvent;
import flash.utils.Dictionary;
import flash.display.MovieClip;
import flash.display.Stage;
import flash.display.*;
import flash.events.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
dynamic public class PublicClass extends MovieClip {
public var dict:Dictionary = new Dictionary();
public var correct = 0;
public var error = 0;
public var failed_attempt = 0;
public var hits:int = 0;
public var max:int = 0;
public var maxCount:int = 0;
public var frame:int = 0;
public var droppedTargets:Array = new Array();
public var resetCounter = 0;
public var dropTargets:Array = new Array();
public var stageSelect:String = "StageNumber";
var resetChances = true;
public function PublicClass()
{
}
//Listeners **************
public function mouseDownHandler(evt:MouseEvent):void {
var object = evt.target;
parent.addChild( object );
object.startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
public function mouseUpHandler(evt:MouseEvent):void {
var obj = evt.target;
var targetTrap = false;
obj.stopDrag();
trace (max, "= max", maxCount, " = maxcount ");
for (var i:int = 0; i < dropTargets.length; i++) {
var target:MovieClip = dropTargets[i] as MovieClip;
if (target.hitTestObject(obj) == true) {
if (alreadyBeenDraggedCheck(target) == false) {
droppedTargets.push(target);
targetTrap = true;
test_match(target,obj);
}
}
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
if (targetTrap == false) {
obj.x = obj.initial_x;
obj.y = obj.initial_y;
}
}
function test_match(target,obj) {
if (dict[target] == obj)
{
hits = hits+1;
max = max+1;
trace("Yes ! You got one !");
obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
centerMe (obj, target);
} else {
max = max+1;
failed_attempt = failed_attempt + 1;
trace("Missed :(");
obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
centerMe (obj, target);
}
if(max == maxCount)
{
button_btn.visible = true;
}
if(max > 0)
{
if(resetChances == true){
reset_btn.visible = true;
}
}
}
function centerMe(dragged:MovieClip,droppedOn:MovieClip):void {
var startX = dragged.x;
var startY = dragged.y;
var destX = dragged.x = droppedOn.x + ((droppedOn.width - dragged.width)/2);
var destY = dragged.y = droppedOn.y + ((droppedOn.height - dragged.height)/2);
if (stageSelect == "Stage3")
{
dragged.x = droppedOn.x
dragged.y = droppedOn.y
} else {
var myXtween:Tween = new Tween(dragged, "x", Elastic.easeOut, startX, destX, 1, true);
var myYtween:Tween = new Tween(dragged, "y", Elastic.easeOut, startY, destY, 1, true);
dragged.alpha = 0.5;
}
}
function alreadyBeenDraggedCheck(dropCandidate:MovieClip):Boolean {
var alreadyDraggedOn = false;
for (var i=0;i<droppedTargets.length;i++) {
if (droppedTargets[i] == dropCandidate) {
alreadyDraggedOn = true;
}
}
return alreadyDraggedOn;
}
// Public Buttons **************
function Next(evt:MouseEvent):void {
if (hits == maxCount)
{
correct = correct + 1;
trace("Made it !!");
}
else
{
trace("You Made an Error!!");
error = error + 1;
}
gotoAndStop(frame = frame + 1);
dropTargets.splice(0,max);
max = 0;
hits = 0;
droppedTargets.splice(0);
for each (var item in dict)
item.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}
function done(evt:MouseEvent):void {
if (hits == maxCount)
{
correct = correct + 1;
trace("Made it !!");
}
else
{
trace("You Made an Error!!");
error = error + 1;
}
dropTargets.splice(0);
droppedTargets.splice(0);
max = 0;
hits = 0;
if(stageSelect == "Stage1") {
plankton2_mc.visible = false;
smallfish4_mc.visible = false;
tuna2_mc.visible = false;
calm_mc.visible = false;
human_mc.visible = false;
} else if(stageSelect == "Stage2") {
humanBaby_mc.visible = false;
humanChild_mc.visible = false;
adolescent_mc.visible = false;
humanMen_mc.visible = false;
humanWomen_mc.visible = false;
humanOld_mc.visible = false;
}
gotoAndStop(29);
}
}
}