[TUTORIAL]Functies en eventafhandeling in ActionScript 3.0

LOL

Functies en Event-Handling

Tijd voor een het tweede deel in de reeks van ActionScript-tutorials! Geen programmeertaal zonder functies, en hoe handel je bepaalde gebeurtenissen af, lees verder, en je komt het te weten!

Functies

Wat?

Een functie is een blok code die hergebruikt kan worden. Een functie heeft de mogelijkheid om parameters te bevatten, en om al dan niet een waarde terug te geven.

Standaardfuncties

Flash heeft al heel wat standaardfuncties ingebouwd zitten die kunnen worden opgeroepen. Voorbeelden daarvan zijn onder andere:

  • trace();
  • gotoAndStop();
  • setChildIndex();

Natuurlijk kan Flash niet iedere denkbare functie bevatten, dus is er de mogelijkheid om zelf functies te schrijven.

Zelf functies schrijven

Een functie heeft volgend stramien:

function functieNaam(param1:uint, param2:Number):String
{
//functiecode
}

Bijvoorbeeld:

function telOp(getal1:int, getal2:int):int
{
var som:int;
som = getal1 + getal2;
return(som);

//Bovenstaande kan iets korter:

return(var som:int = getal1 + getal2);

//Of:

return(getal1 + getal2);
}

Commentaar

Een goede programmeur schrijft commentaar, een betere programmeur schrijft commentaar op de juiste manier. Op die manier kan je (later, als je klasses schrijft) gemakkelijk de livedocs van je klasse genereren.

/*
*
* Beschrijving van de functie
*
* @param eventuele paramter beschrijving van de parameter
*
* @return: de returnwaarde beschrijving van de returnwaarde
*/

function functieNaam(param1:uint, param2:Number):String
{
//functiecode
}

Of in ons voorbeeld:

/*
*
* Deze functie telt twee getallen op
*
* @param getal1:int Het eerste getal
* @param getal2:int Het tweede getal
*
* @return som:int De som van de twee getallen
*/

function telOp(getal1:int, getal2:int):int
{
var som:int;
som = getal1 + getal2;
return(som);

//Bovenstaande kan iets korter:

return(var som:int = getal1 + getal2);

//Of:

return(getal1 + getal2);
}

Void?

Als een functie geen waarde teruggeeft, dan stel je als terugkeerwaarde void in. Dit bijvoorbeeld bij functies waarmee je iets tekent.

Een functie aanroepen

Een functie zonder parameter en zonder terugkeerwaarde

Roep je gewoon op door functieNaam();

Bijvoorbeeld init();

Een functie met parameters en zonder terugkeerwaarde

Je geeft de parameters tussen de haakjes mee met de aanroep, gescheiden door een komma: functieNaam(parameter);

Bijvoorbeeld tekenRechthoek(breedte, hoogte);

Een functie met parameters en met terugkeerwaarde

De terugkeerwaarde moet opgevangen worden in een variabele: var tekst:String = genereerWachtwoord(naam, geboortedatum);

Bijvoorbeeld var som:int = telOp(3, 4);

De scope van variabelen bij functies

Twee soorten variabelen:

  • Lokale variabelen: Variabele wordt gedeclareerd binnen de functie, en is enkel bereikbaar binnen die functie.
  • Globale variabelen: Variabele wordt gedeclareerd buiten de functie, en is bereikbaar over de volledige tijdslijn.

Opgelet! Tweens worden altijd globaal gedeclareerd, dit in verband met de Garbage Collector van Flash.

Eventafhandeling

Wat?

Events zijn gebeurtenissen. Als er dus iets gebeurt wil je dat je programma daarop reageert, dit kan een actie van de gebruiker zijn (een muisklik, een toets die wordt ingedrukt,…) of een actie binnen het programma (bijvoorbeeld ENTER_FRAME).

Hoe?

Door middel van EventListeners:

addEventListener(event, functieDieOpgeroepenMoetWorden);

function functieDieOpgeroepenMoetWorden(event:SoortEvent):void
{
//acties
}

Bijvoorbeeld

addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);

function mouseDownHandler(event:MouseEvent):void
{
trace(”Je hebt met je muis geklikt!”);
}

Dit Artikel

Dit artikel is geschreven door Mattijs De Smedt, en mag niet gekopieerd of gepubliceerd worden zonder toestemming van de auteur.

Of bekijk een van deze handige posts die je ook interessant vind

[TUTORIAL]Introductie tot ActionScript

Een goede start om AS 3.0 te leren

Steun en stem:Plaatsen/stemmen op eKudos Plaatsen/stemmen op Digg Stumble it! Voeg dit artikel toe aan Del.icio.us Abonneer je op de RSS-feed van deze site

Post a Comment