Copy link to clipboard
Copied
Hi im trying to make a drag and drop quiz. Where i have multiple drag and a few drops.
But i can't set the position of the dropplace.
var dragArray:Array = [DragOne,DragTwo,DragThree,DragFour,DragFive,DragSix,DragSeven];
var matchArray:Array = [DropOne,DropOne,DropOne,DropTwo,DropTwoDropThree,DropThree];
var goodArray:Array = [0,0,0,0,0,0,0];
var startX:Number;
var startY:Number;
var counter:Number = 0;
btn_control.visible = false;
mc_mark.visible = false;
for (var i:int = 0; i < dragArray.length; i++)
{
dragArray.buttonMode = true;
dragArray.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
dragArray.addEventListener(MouseEvent.MOUSE_UP, dropIt);
dragArray.startX = dragArray.x;
dragArray.startY = dragArray.y;
}
function pickUp(event:MouseEvent):void
{
event.currentTarget.startDrag(true);
event.currentTarget.parent.addChild(event.target);
startX = event.currentTarget.x;
startY = event.currentTarget.y;
trace("click + " + event.target.name);
}
function dropIt(event:MouseEvent):void
{
txt_hint.visible = false;
event.currentTarget.stopDrag();
trace("drop + " + event.target.name);
var currentClip = event.currentTarget;
var len:uint = Math.min(dragArray.length,matchArray.length,goodArray.length);
for (var i:int = 0; i<len; i++)
{
if (currentClip.hitTestObject(matchArray) && (goodArray == 0))
{
currentClip.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
currentClip.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
currentClip.buttonMode = false;
counter++;
currentClip.x = matchArray.x;
currentClip.y = matchArray.y;
goodArray++;
trace("stop + " + event.target.name);
if (counter == 7)
{
btn_control.visible = true;
btn_control.addEventListener(MouseEvent.CLICK, controll);
}
return;
}
}
event.currentTarget.x = startX;
event.currentTarget.y = startY;
}
function controll(event:MouseEvent):void
{
var done:Number = 0;
var len:uint = Math.min(dragArray.length,matchArray.length,goodArray.length);
for (var i:int = 0; i<len; i++)
{
if (matchArray.x != dragArray.x || dragArray.y != matchArray.y)
{
ready= 0;
matchArray.ID--;
dragArray.x = dragArray.startX;
dragArray.y = dragArray.startY;
dragArray.buttonMode = true;
dragArray.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
dragArray.addEventListener(MouseEvent.MOUSE_UP, dropIt);
txt_hint.visible = true;
txt_hint.text = "Try again!";
goodArray--;
counter--;
btn_control.visible = false;
}
if (matchArray.x == dragArray.x || (dragArray.y == matchArray.y))
{
ready++;
if (ready==7)
{
btn_control.visible = false;
mc_mark.visible = true;
txt_hint.visible = true;
txt_hint.text = "Correct!";
}
}
}
}
Copy link to clipboard
Copied
If I run a makeshift version using your code all dropped objects stick to the targets.
Just in case it matters, your matchArray is missing a comma between two of the elements.