PDA

Volledige versie bekijken : [MX04P] Semi herhalende code korter schrijven?


VAW
%Europe/Berlin %511 %2005, 13:17
Ik ben een soort van rooster met een bepaald aantal vakjes aan het maken voor het een of ander, en daarbij wordt er bij elke frame een vakje bijgeplaatst op een andere plaats, door middel van duplicateMC. Deze code heb ik staan op de MC van het vakje.
onClipEvent (load) {
if (_root.site.teller <= 7) {
this._x = 80*(_root.site.teller - 1);
this._y = 80*0;
}else{
if (_root.site.teller > 7 && _root.site.teller <= 14) {
this._x = 80*(_root.site.teller - 8);
this._y = 80*1;
}else{
if (_root.site.teller > 14 && _root.site.teller <= 21) {
this._x = 80*(_root.site.teller - 15);
this._y = 80*2;
}
etc.....
_root.site.teller is dus de teller, elke frame wordt hij 1 hoger, en hij vertrekt bij 1. Hij stopt met tellen bij mijn gewenste aantal.

Mijn vraag is nu, kan ik deze telkens herhalende code veel korter schrijven? Want het aantal van vakjes dat hij moet plaatsen kan 9 zijn, en dan heb ik maar 2 if's nodig, maar als ik er 132 nodig heb, zijn het er al een heleboel meer. Ik kan natuurlijk die hele code blijven herhalen, maar da's nogal omslachtig dacht ik...

Dauntless
%Europe/Berlin %544 %2005, 14:03
Euhm...
onClipEvent (load)
{
this._x = 80 * (_root.site.teller - Math.floor(_root.site.teller / 7)*7+1);
this._y = 80 * Math.floor(_root.site.teller / 7);
}



Maar dit lijkt me eigenlijk zo kort dat ik wel iets over het hoofd moet gezien hebben :p

Dennie
%Europe/Berlin %575 %2005, 14:48
Dit moet volgens mij de code zijn:
onClipEvent (load) {
this._x = 80*(_root.site.teller-1-(Math.ceil((_root.site.teller/7)-1)*7));
this._y = 80*Math.ceil((_root.site.teller/7)-1);
}

Dennie
%Europe/Berlin %578 %2005, 14:52
Volgens mij is de code zoals hierboven staat!

Dauntless
%Europe/Berlin %579 %2005, 14:54
Je kan ook gewoon je post wijzigen ;)

//En ik denk dat onze code's exact hetzelfde doen :)
//edit: Jup, ze doen exact hetzelfde :)

VAW
%Europe/Berlin %668 %2005, 17:02
Ah, het werkt inderdaad! Bedankt. Wel nog ff zien wat die .floor en .ceil juist doen in de flash help, leer ik ineens wat bij :)

Dauntless
%Europe/Berlin %702 %2005, 17:51
Ahja: floor is sneller dan ceil :). Kan altijd handig zijn ;).

Roenes
%Europe/Berlin %727 %2005, 18:27
Ahja: floor is sneller dan ceil :)Is da zo joh? Weet je dan toevallig ook waarom die sneller is? Want ik kan eigenlijk niet bedenken waardoor dat zou kunnen komen :)