PDA

Volledige versie bekijken : Scope + Function


TheSilentWitness
%Europe/Berlin %820 %2005, 20:40
Heey,


Voor ik mijn vraag stel, ja, ik heb het internet wat afgeschuimd etc. :cool:

Oke:

Ik vroeg me eigenlijk af wat scoping precies is. Is het de context van iets of hoe of wat?


Verder uhm :I :I
kan iemand eens uitleggen hoe de argumenten in functies precies werken? :I :I



Alvast bedankt!



ps: misschien een ideetje om over de argumenten in functies een tut te maken? :D

Dauntless
%Europe/Berlin %824 %2005, 20:47
Scoping is best een groot onderwerp!
Dit (http://www.kirupa.com/developer/actionscript/tricks/scope.htm) is al een leuke tut van kirupaforum.

Uitleg over arguments (parameters) vind je hier (http://www.kirupa.com/developer/actionscript/functions2.htm).

TheSilentWitness
%Europe/Berlin %833 %2005, 20:59
Dauntless, hartelijk bedankt:-)


Dat van de argumenten had ik al gevonden, maarben er nog steeds niet erg veel wijzer van geworden:I

Dauntless
%Europe/Berlin %870 %2005, 21:53
Je kent het nut van een functie wel, een hele brok code kunnen oproepen en uitvoeren, en dit misschien meerdere keren.
Waarschijnlijk deed je vroeger dit:
var mijnTrace = "jeroen";
function eenFunctie(){
trace(mijnTrace);
}
eenFunctie();

Dus eerst een aparte variabele aanmaken. Dit kan je dus beter doen dmv een parameter.
function eenFunctie(mijnTrace){
trace(mijnTrace);
}
eenFunctie("jeroen");

Voetsjoeba
%Europe/Berlin %958 %2005, 23:59
Een argument (eigenlijk parameter) is een waarde die je meegeeft aan een functie, waarmee de functie dan iets doet. Bijvoorbeeld, de 'load' functie van het LoadVars object heeft 1 argument, namelijk de URL van het bestand dat geladen moet worden. De functie kan niet ruiken welk bestand hij moet laden - dat moet jij hem meedelen. De functie staat alleen maar in voor het laden ervan. Als je het argument niet meegeeft kan de functie niets doen omdat hij niet weet wat hij moet laden.

Zie het als de functie 'rijNaar' van een auto. Als je je auto de opdracht geeft 'rijNaar', dan kan hij niets doen want hij weet niet waar naar toe. Alleen rijNaar Gent bijvoorbeeld kan de auto uitvoeren.

Binnen de functie heet die meegegeven waarde een argument. Van buitenaf geef je een parameter mee, en binnen de functie zijn er dan de argumenten.

Een functie die parameters aanvaard declareer je zo:

deFuntie = function(parameter1, parameter2, ... ){
trace(parameter1);
trace(parameter2);
}

BDisOKE
%Europe/Berlin %963 %2005, 00:07
Wat ik van mijn scripting mentors heb begrepen is dat je op deze manier een functie nog makkelijker voor meerdere dingen kunt gebruiken.
Doordat je er verschillende parameters aan kunt hangen. :)

Folkert
%Europe/Berlin %011 %2005, 01:17
een scope is de plek waarbinnen iets zich bevind.
een zogenaamde scope chain is de volgorde waarop flash( in dit geval)
zoekt.
Bijvoorbeeld

//globale scope (daar kijkt flash het laatst)
_global.foo = "global foo";
trace("trace op timeLine 1= "+foo);

//timeline (of clip) scope
var foo = "timeLine";
trace("trace op timeLine 2= "+foo);
function blaat(){
//locale functie scope
var foo = "locale f";
trace("trace in functie = "+foo);
}

blaat();

Als je dat in flash plakt zal je zien dat de locale functie variable scope, in de functie de baas is (en dus traced), dat de timeline scope op de timeline de baas is (en dus bij trace timeline 2 is die baas boven de globale scope.
De globale scope, daar komt flash pas nadat die eerst heeft gezocht in de locale scope en daarna in de clip (timeline) scope. En zie daar is dan die scope chain ;)

Dauntless
%Europe/Berlin %305 %2005, 08:19
Een argument (eigenlijk parameter) is een waarde die je meegeeft aan een functie, waarmee de functie dan iets doet. Bijvoorbeeld, de 'load' functie van het LoadVars object heeft 1 argument, namelijk de URL van het bestand dat geladen moet worden. De functie kan niet ruiken welk bestand hij moet laden - dat moet jij hem meedelen. De functie staat alleen maar in voor het laden ervan. Als je het argument niet meegeeft kan de functie niets doen omdat hij niet weet wat hij moet laden.

Zie het als de functie 'rijNaar' van een auto. Als je je auto de opdracht geeft 'rijNaar', dan kan hij niets doen want hij weet niet waar naar toe. Alleen rijNaar Gent bijvoorbeeld kan de auto uitvoeren.

Binnen de functie heet die meegegeven waarde een argument. Van buitenaf geef je een parameter mee, en binnen de functie zijn er dan de argumenten.

Een functie die parameters aanvaard declareer je zo:

deFuntie = function(parameter1, parameter2, ... ){
trace(parameter1);
trace(parameter2);
}

Hey Voetsjoeba, 'k dacht wel dat je op deze post ging antwoorden :p
Wederom: mooie uitleg :)

TheSilentWitness
%Europe/Berlin %423 %2005, 11:09
Wow, hier ben ik echt wel ver mee geholpen!



Hartelijk bedankt!! Allemaal :D