Flash AS3 drag and drop


Klik op de munt om hem te draggen, zodra je bij het varkentje komt verdwijnt de munt in het varken.

munt.addEventListener(MouseEvent.MOUSE_DOWN, drag);//bij een klik op het muntje naar de functie dragstage.addEventListener(MouseEvent.MOUSE_UP, drop);//bij loslaten van het muntje naar de functie drop

function drag(e:MouseEvent):void
{
e.target.startDrag(false, new Rectangle(33,31,559,230));//starten van het draggen, de rectangle is het gebied waar buiten het muntje niet kan gedragt worden (x,y,w,h)
}

function drop(e:MouseEvent):void
{
stopDrag();//stoppen van het draggen
}

munt.addEventListener(Event.ENTER_FRAME, Hitding); //luisteren of de munt het varkentje raakt

function Hitding(event:Event):void
{
if (spaarvarken.hitTestObject(munt)) // als het muntje het varkentje raakt
{
munt.visible=false;//wordt de munt onzichtbaar

}
}

In bovenstaand voorbeeld komt het muntje ook weer terug, om dat voor elkaar te krijgen heb je de volgende extra code nodig (onderstaande code komt bovenin):

var Teller=10; //hierin het aantal seconden dat de timer moet gebruiken
var myTimer:Timer=new Timer(1000,30); //1000,30 betekend dat er 30 keer een seconde getimed wordt, aanpassen naar 60 voor een minuut.
myTimer.addEventListener(TimerEvent.TIMER, timerListener);//luisterd naar de timer

Vervang het laatste stuk code door de volgende codes:

function Hitding(event:Event):void
{
if (spaarvarken.hitTestObject(munt)) // als het muntje het varkentje raakt
{
munt.visible=false;//wordt de munt onzichtbaar
myTimer.start();//start de timer
}
}function timerListener(e:TimerEvent):void {
if (Teller==0) {//als de teller op 0 staat het volgende uitvoeren
munt.visible=true;//munt zichtbaar maken
munt.x=466.95;//verplaats naar deze x coordinaat
munt.y=200;//verplaats naar deze y coordinaat
Teller=10;//zet de teller weer op 10
myTimer.stop();//zet de teller stop
} else {
Teller–; //iedere seconde een afhalen van het getal in de variabele Teller
}
}