PDA

Volledige versie bekijken : Var meegeven aan methode


Soyono
%Europe/Berlin %648 %2008, 16:33
function verplaats(event){
//eenMC.x = 300
}

mc1.addEventListener(MouseEvent.CLICK, verplaats);

Als er op mc1 geklikt wordt, wordt de methode 'verplaats' uitgevoerd.
Het is de bedoeling dat deze een mc verplaatst, welke dit is wil ik graag meegeven als er op de knop geklikt wordt.

De oplossing zal wel simpel zijn, maar kon zogauw niet vinden hoe dit werkt in AS3

Gr
Maarten

TheDutch
%Europe/Berlin %649 %2008, 16:35
event.currentTarget.x = 300; :)

Zie LiveDocs bij MouseEvent.

awesomo
%Europe/Berlin %651 %2008, 16:37
is event.target.x fout?

Soyono
%Europe/Berlin %661 %2008, 16:52
Okay bedankt!

TheDutch
%Europe/Berlin %672 %2008, 17:08
currentTarget:
Is het object waar de even listener op staat die het event heeft gedispatched.

target:
Kan het object zijn waar de event listener op staat die het event heeft gedispatched, maar kan ook één van zijn kinderen zijn wanneer deze bestaan en je die hebt aangeklikt.

Stel je hebt een button in een canvas zitten. Je klikt op de button maar alleen op de canvas staat een event listener, niet op de button zelf. Dan is de "currentTarget" het canvas en de "target" de button omdat je daar op geklikt hebt en dat een kind is van het canvas. Wanneer je naast de button op een leeg gedeelte van de canvas zou klikken dan zijn zowel "currentTarget" als "target" het canvas.

Zo zie je dat er best verschil tussen beide zit. Eigenlijk weet je met "currentTarget" altijd zeker dat je het object hebt waar ook de event listener op staat. Met "target" weet je dat niet altijd want het kan ook net zo goed een kind zijn van het object waar de event listener op staat. Het is dus in de meeste gevallen het veiligst om "currentTarget" te gebruiken behalve wanneer de kinderen een rol spelen binnen het event :).

awesomo
%Europe/Berlin %688 %2008, 17:31
ah dank je wel :)

Soyono
%Europe/Berlin %386 %2008, 10:16
Oke en stel, je wilt als je op mc1 klikt de huidige mc2.x vervangen door een waarde die je mee wilt geven als je op mc1 klikt.

Hoe krijg je dat voor elkaar?

Kan het niet vinden in LiveDocs
(ik weet waarschijnlijk niet hoe je daar goed gebruik van kan maken :S )

TheDutch
%Europe/Berlin %390 %2008, 10:22
mc2.x = 300;

Soyono
%Europe/Berlin %374 %2008, 09:58
Nou ik bedoelde het meer zo, zoals hieronder in AS2.

function verplaatsNaarX(mc_actie, xWaarde){

mc_actie._x = xWaarde;
}


verplaatsNaarX(mc2, 300);

Hoe zou je dit doen in AS3?

Dauntless
%Europe/Berlin %380 %2008, 10:08
Die code, direct geport naar AS3, verandert niet.

PsK
%Europe/Berlin %389 %2008, 10:21
Die code, direct geport naar AS3, verandert niet.
Jawel
mc_actie._x word mc_actie.x ;)

Soyono
%Europe/Berlin %459 %2008, 12:01
Sorry, het was de bedoeling dat de functie werd aangeroepen als er geklikt werd.
Maar dan krijg je dus het volgende idee... is er geen kortere manier?

function verplaatsNaarX(mc_actie, xWaarde){

mc_actie.x = xWaarde;
}

function verplaats(event){

verplaatsNaarX(mc2, 300);
}

mc1.addEventListener(MouseEvent.CLICK, verplaats);