Buttons, Functions en Events
Leerdoelen
- Het gebruiken van conditional statements in AS3
- Functies schrijven met AS3
- EventListeners gebruiken om functies aan te roepen AS3.
Opdracht
STAP1 (zie v.b.)
Probeer allereerst een MovieClip over de Stage te laten bewegen d.m.v. het steeds weer vervangen van de x en/of y positie.
Maak hiervoor een MovieClip (MC1) bestaande uit 2 frames. In het framescript op het tweede frame zeg je dat Heel MC1 op een andere positie moet gaan staan.
De x positie b.v. telkens 20 meer maken. ( MovieClip(parent).MC1.x+=20; )
Als je MC1 op de stage zet, zal de MovieClip bij het testen (Ctrl+Enter) "loopen" en steeds opnieuw het script uitlezen.
Met behulp van "if" constructies kan je er nu voor zorgen dat MC1 niet van de Stage af gaat.
Maak nu nog een MovieClip (MC2), en zet deze ergens op je Stage.
Nu kun je, middels een andere "if"constructie, checken of de x en y positie van MC1 groter of gelijk wordt aan die van MC2. Als dit zo is dan kan je b.v. naar een frame(label) springen binnen MC2.
STAP2 (zie v.b.)
Een script dat iedere keer opnieuw gelezen moet worden kan beter in een functie gezet worden en aangeroepen worden door een speciaal Event. Dit event heet "ENTER_FRAME". De functie zal zo, even vaak gelezen worden als de fps aangeven in je Flash document.
Nu hoef je het script ook niet meer in MC1 te stoppen, maar kan direct in de root staan.
MC1 heeft nu nog maar 1 frame nodig. De beweging wordt hierdoor 2x zo snel!
STAP3
Als laatste toevoeging komen er knoppen bij, resp. STOP, PLAY en REW.
- De STOP knop stopt de animatie.
Dit kan door de pixels die MC1 iedere keer verplaatst op nul te zetten. - Bij PLAY word deze variable weer het eerder vast gestelde aantal pixels
- REW zet alles terug in de uitgangs positie.
Kijk hoe je de functie "Math.random()" kunt gebruiken om MC2 na iedere botsing een nieuwe start positie te geven.