[flash5] Kan deze code efficiënter?

Pagina: 1
Acties:

  • Cubix
  • Registratie: Juni 2001
  • Niet online
Dit is de code die ik in een spel gebruik om een object (hover) te laten keren. Het ziet er alleen niet efficiënt uit. Kan ik dit alles in één regel stoppen? (en hoe?)

Alvast bedankt! :)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
if (richting == 0) {
    setProperty ("_root.hover", _rotation, "0");
}
if (richting == 45) {
    setProperty ("_root.hover", _rotation, "45");
}
if (richting == 90) {
    setProperty ("_root.hover", _rotation, "90");
}
if (richting == 135) {
    setProperty ("_root.hover", _rotation, "135");
}
if (richting == 180) {
    setProperty ("_root.hover", _rotation, "180");
}
if (richting == 225) {
    setProperty ("_root.hover", _rotation, "225");
}
if (richting == 270) {
    setProperty ("_root.hover", _rotation, "270");
}
if (richting == 315) {
    setProperty ("_root.hover", _rotation, "315");
}

Verwijderd

hmm ik heb hier geen beschikking over flash (zit op de universiteit), maar kan je niet iets maken van een optelsommetje (bijvoorbeeld: 0+richting), dan hoef je niet een if regel in te stellen volgens mij?

Verwijderd

Ik maak geen gebruik van flash, maar aangezien je de waarde in de variabele richting hebt staan moet het volgende toch mogelijk zijn:

setProperty ("_root.hover", _rotation, richting);

Je zult de variabele wel op een bepaalde manier moeten aanroepen b.v. $ ervoor, (hoe zit dat in Flash), maar op deze manier gaat het dus met 1 regel.

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:29
code:
1
setProperty ("_root.hover", _rotation, richting);

Zou idd hetzelfde doen in 1 regel...echter in bovenstaand lap code zijn er een aantal standaard waardes (richting kan alleen 0,45,90,135,180,225,270 en 315 zijn)...met bovenstaande regel kan de richting alles zijn (er is zelfs geen controlle of de opgegeven waarde tussen de 0 en 360 zit). Als dit niks uitmaakt kan je die regel code dus gebruiken.

Een makkelijkere manier voor een heleboel if...else statements is een switch statement...maar ik lees net dat Actionscript dat niet ondersteund.........dan zou ik alsnog jouw code iets anders schrijven. (Met else ertussen)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (richting == 0) {
    setProperty ("_root.hover", _rotation, "0");
} else if (richting == 45) {
    setProperty ("_root.hover", _rotation, "45");
} else if (richting == 90) {
    setProperty ("_root.hover", _rotation, "90");
} else if (richting == 135) {
    setProperty ("_root.hover", _rotation, "135");
} else if (richting == 180) {
    setProperty ("_root.hover", _rotation, "180");
} else if (richting == 225) {
    setProperty ("_root.hover", _rotation, "225");
} else if (richting == 270) {
    setProperty ("_root.hover", _rotation, "270");
} else if (richting == 315) {
    setProperty ("_root.hover", _rotation, "315");
}

  • Cubix
  • Registratie: Juni 2001
  • Niet online
Het is me al gelukt op deze manier:
code:
1
setProperty ("_root.hover", _rotation, richting);

En die "richting" geef ik weer met pijltjestoetsen een waarde.

Bedankt! :)

Verwijderd

kijk hier even naar efficiente key code, die ik toen heb gepost....

[topic=342176/1/25]
Pagina: 1