Het spookjesbos
Doel van de opdracht is het maken van een flash programma waar een aantal (10) spookjes vrolijk door het beeld bewegen. Dit doen we m.b.v. het ENTER_FRAME event. Dit is een event dat iedere keer als er een frame geladen wordt van de stage of van een MovieClip. Het spookje dat we gebruiken mag je zelf tekenen of hier downloaden. Om dit voor elkaar te krijgen kun je de volgende stappen volgen:
- Maak een nieuw .fla bestand aan met ActionScript 3
- Voeg de afbeelding van het spookje toe aan de library
- Converteer de afbeelding naar een Symbol met de naam Spookje
- Selecteer het spookje in de library en sleep hem naar de stage
- Converteer het spookje naar een Symbool (rechtsklikken, convert to symbol)
- In het Converteer naar symbool scherm zorg je ervoor dat het een MovieClip is met de naam Spookje en dat de MovieClip naar ActionScript wordt geconverteerd (zie screenshot)
- Maak een nieuwe ActionScript file aan en noem deze Spookjesbos.as
- Maak in de as file de klasse Spookjesbos aan als Document klasse (zie code onder screenshot)
- Koppel in de .fla de document klasse (Spookjesbos)
- Maak nog een ActionScript file aan en noem deze Spookje.as
- Plaats daarin de code om een spookje te laten bewegen (zie code onder screenshot)
- Pas de code dusdanig aan zodat ieder spookje een willekeurige snelheid krijgt
- Zorg ervoor dat ieder spookje ook nog roteert
- Optioneel: animeer het spookje
Spookjesbos.as:
package { import flash.display.MovieClip; import flash.events.Event; public class Spookjesbos extends MovieClip { // de lijst om de spookjes in op te slaan var spookjes:Array = new Array(); function Spookjesbos() { for (var i = 0; i < 10; i++) { var spookje=new Spookje(); spookje.x = stage.stageWidth / 2; spookje.y = stage.stageHeight / 2; spookjes.push(spookje); this.addChild(spookje); } stage.addEventListener(Event.ENTER_FRAME, beweegDeSpookjes); } // deze functie wordt aangeroepen door het enter frame event function beweegDeSpookjes(evt:Event) { for (var i:Number = 0; i < spookjes.length; i++) { // laat het spookje bewegen spookjes[i].beweeg(); } } } } |
Spookje.as:
package { import flash.display.MovieClip; public class Spookje extends MovieClip { var horizontaleRichting:Number = Math.random() * 2 + 0.1; var verticaleRichting:Number = Math.random() * 2 + 0.1; var snelheid:Number = 6; function beweeg() { this.x += this.horizontaleRichting * this.snelheid; this.y += this.verticaleRichting * this.snelheid; if (this.x >= stage.stageWidth || this.x <= 0) { this.horizontaleRichting= -1 * this.horizontaleRichting; } if (this.y>=stage.stageHeight|| this.y<=0) { this.verticaleRichting= -1 * this.verticaleRichting; } } } } |
Een uitwerking van de opdracht met TweenLite: SpookjesbosMetTweenLite
