PDA

Volledige versie bekijken : functies & parameters


Maaike
%Europe/Berlin %630 %2005, 16:07
hoihoi,

Met veel interesse heb ik alles over functies doorgenomen (een van de laatste topics).
Maar hoe pas ik die toe op hetvolgende :confused:

Dit werkt prima:
var snelheid=2;
var grootte=15000;

function schaal(){
mc10.onEnterFrame = function() {
if (this._yscale < grootte) {
this._xscale = this._xscale + snelheid;
}
if (this._yscale < grootte) {
this._yscale = this._yscale + snelheid;
snelheid = snelheid * 2;
}
}
}
schaal.call ();

Wat ik nu wil is dat ik de grootte en de snelheid in de functie verwerk, dus zoiets:
function schaal(grootte, snelheid){
mc10.onEnterFrame = function() {
if (this._yscale < grootte) {
this._xscale = this._xscale + snelheid;
}
if (this._yscale < grootte) {
this._yscale = this._yscale + snelheid;
snelheid = snelheid * 2;
}
}
return grootte;
return snelheid;
}
var mijnGrootte = 15000;
var mijnSnelheid=2;

schaal.call (mijnGrootte, mijnSnelheid);

......helaas dat zal wel niet logisch zijn, want het werkt voor geen meter.

Het liefst wil ik ook de mc variabel hebben, in een functie. Dit kan met eval, maar hoe verwerk ik dat in mijn functie?


Tot zover,
alvast dank voor de eventuele hulp :D

Maaike

Roenes
%Europe/Berlin %681 %2005, 17:21
Eerst die returns eruit halen want die slaan nergens op :) En de variabele mc zou volgens mij zo moeten: (niet getest)

function schaal(mc, grootte, snelheid){
mc.onEnterFrame = function() {
if (this._yscale < grootte) {
this._xscale = this._xscale + snelheid;
}
if (this._yscale < grootte) {
this._yscale = this._yscale + snelheid;
snelheid = snelheid * 2;
}
}
}
var mijnGrootte = 15000;
var mijnSnelheid=2;

schaal(mc10, mijnGrootte, mijnSnelheid);
en waarom functienaam.call() gebruiken? je kan gewoon functienaam() doen :)

Maaike
%Europe/Berlin %692 %2005, 17:37
SUPER Roenes :) :) :)
En makkelijker dan ik dacht......

Dankjewel!

Maaike

Roenes
%Europe/Berlin %699 %2005, 17:46
Graag gedaan :)

Even nog 1 opmerking: die 2 return statements pal onder elkaar hebben zoiezo geen nut. Na de 1e return stopt je functie en de 2e zal dus nooit worden uitgevoerd. Het is maar dat je het weet :)