Welkom!

Deel je kennis met anderen in deze Flashgemeenschap!
Aanmelden / registreren
Gebruikersnaam:
Wachtwoord:
Wachtwoord opslaan?
Wachtwoord vergeten?

TUTORIALS / Actionscripting / Beginnen met actionscript

Stuiterende Balletjes met Flash MX of: een introductie in de kunst van het object georiënteerd programmeren
144 downloads, 11279 keer gelezen
(June 6, 2003)
Waardering: 40 keer gestemd 
 3.4 van de 5
Eigenschappen
Flash Versie  Flash MX
Moeilijkheidsgraad  Gemiddeld

Formaat:   380 KB

Een uitgebreide tutorial over FLASH MX en een introductie in de kunst van het object georiënteerd programmeren met actionscript. Behandeld wordt een groot aantal commando's in een zinvolle samenhang.
  balletje 1

Stuiterende Balletjes met Flash MX

of: een introductie in de kunst van het object georiënteerd programmeren
© Ton van den Broeck

Inleiding

We beginnen een beetje saai: we gaan een veld maken waarin twee balletjes tegen de wanden stuiteren en tegen elkaar.
Elk balletje weet waar de wanden zijn en waar het andere balletje is.


Bij aanraking gaat het balletje een andere kant uit.
Later voegen we een achtergrond in, maken een start- en een stopknop, laten een groot aantal balletjes afstammen van één movieClip, plaatsen die automatisch in het beeld en we passen steeds de kleur van de balletjes aan na een botsing.
In het laatste stadium wordt één van de balletjes "dragable" gemaakt: dit wil zeggen dat het met de muisaanwijzer verplaatst kan worden en het aantal balletjes dat je wil hebben is aan de player door te geven.
Als afsluiting laten we de balletjes geluid produceren.

ActionScript opdrachten die je na deze sessie begrijpt en kunt toepassen zijn:

· this
· onClipEvent (load)
· onClipEvent (enterFrame)
· on (press)
· setProperty ()
· object.hitTest()
· function name()
· math.round()
· math.random()
· parseInt()
· duplicateMovieClip()
· new Color()
· myColor[i].setRGB(hexadecimaal getal)
· startDrag() stopDrag()
· mySound.attachSound(" ")
· mySound = new Sound()
· switch (teller) { case 1: opdracht; break;}
· mySound.setVolume(50)


Deel 1 Zet de scene klaar en wek de onderdelen tot leven

Maak de scene bijvoorbeeld 550 bij 400 pixels. Daarmee is de film gelijkvormig met het beeldscherm:

Modify - Document - Dimensions.

Kies daar ook een achtergrondkleur (Background Color).

Maak een movieclip (= object) met de naam bal.

Objecten in Flash zijn dingen op de "stage" of werkruimte.
Teken een bal. Selecteer de tekening van de bal en maak het tot object. Geef het de naam: bal.

Insert - Convert to symbol - Name (bal) - Behavior (Movie Clip).

Je kunt de selectie ook naar de library slepen. In de library worden alle symbolen - Movie Clips, Buttons en Graphic - bewaard.

De library bevat de object-symbolen. Dat zijn de mallen waarmee je de eigenlijke objecten gaat maken.

Intermezzo

In een object-georiënteerde taal als bijvoorbeeld Java heten deze symbolen "klassen".
Een class is een definitie van een object, waarmee instances (de eigenlijke objecten) van de class gemaakt kan worden. De klasse vormt als het ware het type van de objecten.
Zoals de getallen 6 en 78 van het type integer (geheel getal) zijn; zo zijn alle balletjes op het veld van het zelfde type, namelijk van het type bal.
Zoals de getallen 6 en 78 alle eigenschappen hebben van een integer, zo hebben bal1 en bal2 ook alle eigenschappen van bal.
Als je een class (object-symbool) maakt, leg je alle eigenschappen en methoden vast. Eigenschappen zijn zaken als plaats en kleur en methoden zijn de gedragingen van het object.
De eigenschap kleur van object bal bereik je in een script bijvoorbeeld zo: newColor = bal.kleur.
De methode changeColor van object bal die de kleur van het balletje aanpast, bereik je door: bal.changeColor().

 

voeg aan de bal een aantal variabelen toe.

Het Object bestaat uit minstens één layer: voeg in de layer de actions toe.

Windows - Actions

Het object is een container geworden van variabelen en eigenschappen.

this.xspeed = 10;
this.yspeed = 10;
this.friction= 0.99;

Het begrijpen van de noodzaak van het sleutelwoord "this" is een volgende stap naar het begrijpen van een object-georiënteerde taal.

Het keyword this zorgt ervoor dat de drie eigenschappen toekomen aan het object dat deze code bevat: het object-symbool bal. Symbolen worden gemaakt om nageslacht (instanties) te maken. Elke instantie die afgeleid is van bal erft de drie eigenschappen.

Hetzelfde kan niet worden bereikt door de code

bal.xspeed = 10;

toe te voegen. Het nageslacht van dit object heet hoogst waarschijnlijk niet bal, maar moet de eigenschappen wel meekrijgen.

Het nageslacht (b.v. instantie bal5) draagt het geërfde this met zich mee en dat wordt dan opgevat als een verwijzing naar de bal5.

In dit voorbeeld krijgt het object (= movieClip) drie variabelen: een snelheid in de x-richting (xspeed); een snelheid in de y-richting (yspeed) en een wrijvingsfactor (friction). Deze variabelen vormen de genen van het object. Al het nageslacht (instances) erven deze genen.

Intermezzo


In een object-geörieënteerde taal kunnen classes eigenschappen en methoden ontvangen van elkaar volgens een bepaalde rangorde die inheritance (overerving) wordt genoemd. Je kunt overerving gebruiken om de eigenschappen en methoden van een class uit te breiden (bijvoorbeeld een variabele toevoegen) of te herdefiniëren (bijvoorbeeld een variabele een andere waarde geven). Een class die erft van een andere class wordt een subclass genoemd. Een class die eigenschappen en methoden doorgeeft naar en andere class wordt een superclass genoemd. Een class kan zowel een subclass als een superclass zijn .

In het vervolg van het programma kunnen deze variabelen andere waarden krijgen.

volgende pagina

 

 

Geef hier je waardering: Matig 1 2 3 4 5 Geweldig!
  Waardering:
doet het niet jay z (10 February 2005, 17:16)
hij doet het niet bij mij helaas
goede uitleg andy mathijs (19 June 2003, 15:11)

Echt goede uitleg, mooi extra informatie gegeven om de beginnende scripter niet vol verbazing achter te laten.

Maar zoals gezegd, setproperty is niet meer nodig, meer zelfs, het staat in flash mx tussen de depreciated funtions, dit kan erop wijzen dat het in een van de volgende releases van de flash niet meer ondersteunt zal worden.

setProperty (this, _x, newxpos)
kan dus simpelweg vervangen worden door this._x=newpos

Geen kritiek, enkel aanvullende informatie


setProperty teh cool (08 June 2003, 08:18)
setProperty is tegenwoording niet meer nodig...
1-3