PDA

Volledige versie bekijken : function vraag


alvaloa
%Europe/Berlin %395 %2005, 10:29
Zit met het volgende probleempje
Ik wil een animatie maken met een aantal vierkantjes. Deze worden 1 voor 1 breder gemaakt dmv een funtion.
Maar hoe kan ik vanuit die funtion de opdrachte geven om op een gegeven moment (if (xP<6)) al aan het volgende vlakje te beginnen?
En bestaat er een manier om de oplopende bestandsnaam .vlak11,12 etc daar meteen in te verwerken?

de code:


_root.vlak11._width = 10;
_root.vlak12._width = 10;
_root.vlak13._width = 10;
_root.vlak14._width = 10;
etc..

_root.nummer = 69;

_root.vlak11.onPress = function() {
beweeg(_root.nummer, _root.vlak11);
};

function beweeg(breed, objekt) {
this.onEnterFrame = function() {
xP = (breed-objekt._width)/4;
objekt._width += xP;
// trace(xP);
trace(objekt._width);
if (xP<6) {
_root.vlak14.beweeg(_root.nummer, _root.vlak14); ->dit werkt nu dus niet!
objekt._width = 69;
delete this.onEnterFrame;
}
};
}

groet,
Alvaloa

TheDutch
%Europe/Berlin %398 %2005, 10:34
Komt hij überhaupt wel in de if statement?

vsoleti
%Europe/Berlin %430 %2005, 11:19
aanmaken van verschillende mc's binnen een hoofd mc.

_root.createEmptyMovieClip("mijn_mc", 0);

for (var i = 0; i<aantal mc die aangemaakt moeten worden; i++) {
_root.mijn_mc.createEmptyMovieClip("mijnSub_mc"+i, i);
mijnSub_mc = _root.mijn_mc["mijnSub_mc"+i];
}

hoop dat je daar iets aan hebt!?

TheDutch
%Europe/Berlin %435 %2005, 11:26
Ik denk dat ik er meer aan heb wanneer je mijn vraag beantwoord...

alvaloa
%Europe/Berlin %460 %2005, 12:03
@TheDutch
Ja komt in de if statement

@vsoleti
Ik wil de bestaande mc's gebruiken omdat die later weer met z'n alle als masker gebruikt worden

Dauntless
%Europe/Berlin %461 %2005, 12:04
_root.vlak11._width = 10;
_root.vlak12._width = 10;
_root.vlak13._width = 10;
_root.vlak14._width = 10;
_root.nummer = 69;
_root.vlak11.onPress = function() {
beweeg(_root.nummer, 11);
};
function beweeg(breed, id) {
object = this["vlak"+id];
this.onEnterFrame = function() {
xP = (breed-object._width)/4;
object._width += xP;
trace(object._width);
if (xP<6) {
if (id == _root.nummber) {
delete this.onEnterFrame;
return;
}
_root.vlak14.beweeg(_root.nummer, id++);
object._width = 69;
}
};
}



Dit?

alvaloa
%Europe/Berlin %465 %2005, 12:09
tnx Dauntless
gaat t effe probere

edit: ik krijg een error vanwege object denk ik, heb ik dan objekt van gemaakt.
Maar hij doet het niet.
Ik snap dit niet helemaal
if (id == _root.nummber) {
delete this.onEnterFrame;
return;
}

The_One
%Europe/Berlin %573 %2005, 14:46
ik denk dat het dit moet zijn:
if (id == _root.nummer) {
delete this.onEnterFrame;
return;
}

alvaloa
%Europe/Berlin %579 %2005, 14:54
nummer geeft de breedte van de mc aan
en id is het nummer van de movieclip

dus dat snap ik effe niet, dat hoeft niet t zelfde te zijn

edit: snap het nummer is breedte en number is aantal movieclips

Dauntless
%Europe/Berlin %579 %2005, 14:54
ik denk dat het dit moet zijn:
if (id == _root.nummer) {
delete this.onEnterFrame;
return;
}
Jep, idd sorry
Die check is om te zien of je aan het einde van de items bent, anders blijft het eeuwig doorgaan. Daarna verwijder je de onEnterFrame en zorg je ervoor dat de functie niet opnieuw wordt uitgevoerd (return;). Als er nog iets is dat je niet snapt zeg je het maar :)

alvaloa
%Europe/Berlin %622 %2005, 15:56
De laatste call funcite doet het niet, als ik id trace dan gaat ie wel naar 12 maar de functie wil op een of ander manier niet starten

ik heb er nu dit staan:

beweeg(_root.nummer, id++);
trace(id);
delete this.onEnterFrame; (-> deze staat er omdat ie de breedte oneindig blijft berekenen)

snipper
%Europe/Berlin %672 %2009, 17:08
Thanks, ik kon hieruit de juiste syntax afleiden voor een functie die ik wilde schrijven.