PDA

Volledige versie bekijken : Listener en het gebruik hiervan


ixus
%Europe/Berlin %991 %2005, 23:47
Mijn vraag is simpel...

Wat is nu precies de functie van een event listener en in welke situaties gebruik je deze functie ??
Er staat een prachtig verhaaltje in de help van Flash (F1), maar dat brengt mij geen duidelijkheid...

Alvast bedankt...

Roenes
%Europe/Berlin %649 %2005, 15:35
Over het algemeen wordt een event listener getriggerd door een bepaald event. Heel leuk en aardig, maar wat betekend dat nou precies? Simpel: stel je hebt een button component. Je kunt daar een event registreren dat click heet. Dat event wordt getriggerd op het moment dat je op de knop drukt. Aan dat event kun je een willekeurige functie koppelen. Dan wordt iedere keer bij het event click die functie uitgevoerd.

Maar hoe ziet dit in code eruit? bijvoorbeeld zo: (typfouten en dergelijke voorbehouden)

function hallo()
{
trace("Hallo daar!!!");
}

my_button.addEventListener("click", hallo);
Nu zal de functie hallo iedere keer worden uitgevoerd als je op my_button drukt. behalve dit voorbeeld heb je bv ook het event change bij comboboxen en zo. Dat event wordt weer door iets anders getriggerd. Maar op die manier kun je dus aan bepaalde tijd-onafhankelijke event's functies koppelen :)

Ik hoop dat bovenstaande het een en ander duidelijker maakt :)

ixus
%Europe/Berlin %696 %2005, 16:42
Bedankt voor je uitleg... :)
Op basis hiervan nog wel het volgende:

Als ik het goed begrijp zou je deze event listeners goed kunnen gebruiken om een "check" functie te laten uitvoeren.
Bijvoorbeeld:
Gebruiker klikt op button en d.m.v. de event listener wordt gecheckt (middels een functie) of MC1 op de stage staat...
Of heb ik dit fout en kan ik hiervoor beter iets anders gebruiken ??

Alvast bedankt... :)

TheZwier
%Europe/Berlin %743 %2005, 17:50
Bedankt voor je uitleg... :)
Op basis hiervan nog wel het volgende:

Als ik het goed begrijp zou je deze event listeners goed kunnen gebruiken om een "check" functie te laten uitvoeren.
Bijvoorbeeld:
Gebruiker klikt op button en d.m.v. de event listener wordt gecheckt (middels een functie) of MC1 op de stage staat...
Of heb ik dit fout en kan ik hiervoor beter iets anders gebruiken ??

Alvast bedankt... :)

Listeners doen eignelijk nix anders dan gewone onClipEvent(event) functies. Alleen helpen ze wel de code overzichtelijk te houden.

Roenes
%Europe/Berlin %749 %2005, 17:58
Bijvoorbeeld:
Gebruiker klikt op button en d.m.v. de event listener wordt gecheckt (middels een functie) of MC1 op de stage staat...
Of heb ik dit fout en kan ik hiervoor beter iets anders gebruiken ??is idd een mogelijkheid. Maar eigenlijk kun je alles ermee doen. Je moet er rekening mee houden dat er een functie wordt aangeroepen die jij specificeert. Die functie kun je van alles laten doen. Van zo simpel als een tekstje tonen tot het gespecificeerd wegschrijven van data via php in een database :)

Folkert
%Europe/Berlin %763 %2005, 18:19
events
een gebeurtenis binnen een object, kan een knop klik zijn of een geladen seintje
eventHandlers
Een functie of een listenerObject die iets uitvoerd wanneer er een event zich afspeelt

in het kort

myListener = new Object();
myListener.eventNaam = function(){
trace("cool eventNaam is geroepen");
}
objectWaarDeEventZichAfGaatSpelen.addEventListener ( myListener, this );


Je kan ook zelf events rondsturen door gebruik te maken van dispatchEvent


EventDispatcher.initialize();
//doe iets
dispatchEvent( { type:"doeIets" });

om daarnaar te luisteren maak je zoals de code (de eerste) aangeeft een listener.

testObject = {};
testObject.doeIets = function() { trace("doeIets event heeft geroepen"); }
dePlekVanDeVorigeCode.addEventListener( "doeIets", testObject );


[/as]

Folkert
%Europe/Berlin %775 %2005, 18:37
de functie die je roept heeft weinig met een event te maken en met de eventdispatcher.
de EventDispatcher geeft je de mogelijkheid naar bestaande of eigen 'events' te luisteren.
wanneer een event zich afspeelt word er een event object verstuurt. daar waar je eventueel luistert naar die event, kan je dan dat event object gebruiken.
Het gebruik word een stuk duidelijker en makkelijker in as2 schrijfwijzes. en in het communiceren tussen verschillende objecten. vroegah ging het zo

deButton.onRelease = function () { trace("deButton is losgelaten");

tegenwoordig is het

deButton.addEventListener( "click", jeListenerObject );

ixus
%Europe/Berlin %844 %2005, 20:16
Okee, da's allemaal duidelijk :)

Bedankt allemaal...
Ik ga er eens mee aan de slag...