Archief - Base Class Constructor

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

`SeriOUs

Legacy Member
Ik heb verschillende movieclips in mijn library met elk hun eigen class & een gedeelde base class. Dus bv. Fish1, Fish2, Fish3 delen als baseclass Fish.

Voor Fish1, Fish2, Fish3,... wil ik echter geen .AS-classbestand gaan schrijven.
De gedeelde 'Fish' AS-klasse extend MovieClip, maar heeft 2 extra attributen in de constructor.
Nu, het probleem:
Als ik in mijn document nu dit doe:
Code:
var fishie1_mc:Fish1 = new Fish1(attribuut1, attribuut2);
krijg ik de melding de klasse Fish1 geen attributen aanneemt...

Erft de class Fish1 niet de constructor van de Baseclass?

Gerritn

Legacy Member
Waarom moet je dan verschillende klasses hebben, als je er toch geen as-file voor wil schrijven, heb je ook geen extra methodes, dus is het nutteloos om voor met meerdere klasses te werken.

Maak gewoon enkele instanties aan vd klasse Fish, en geef die alle nodige methodes...

`SeriOUs

Legacy Member
Nee, dat zou zelfs heel handig zijn.
Stel:
Je hebt allemaal verschillende soorten visjes in je Library. Elk van die visjes heeft een eigen klasse, zodat je snel een soort visje kan aanmaken, dmv de klas te instantieren.

Maar het zijn allemaal vissen, die hetzelfde gebruik moeten hebben, bv. zwemmen. Daarvoor gebruikt ge normaal een base-class. Tot daar toe alles normaal.

Maar stel dat ik nu, als ik een soort vis instantieer, daar extra attributen aan wil geven: bv: een z-as.

Het zou dan héél handig zijn als Flash ervoor zou kunnen zorgen dat ik dan zou kunnen doen: Visje1:Vissoort1 = new Vissoort1(asZ);
En dat gaat nu helaas niet. Dus moet ik voor elke vissoort nu een klasse-file aanmaken, die de basisklasse extend. En dan zou dat wel gaan.... hopelijk. :p
Niet zo erg als je 5 vissoorten hebt, maar als je er 100 gaat hebben, kan dat soms nogal overvloedig zijn.

Gerritn

Legacy Member
Zo zou het inderdaad handig zijn, maar zoals je zegt onmogelijk, wat logisch is ook.
Je subklasse zou je dan instantieren met een argument in je constructor (zoals je z-positie), maar er is geen enkele manier hoe die subklasse zou weten wat te doen met dat argument.

Wat je eventueel wel kan doen, is een array van objecten doorgeven, bvb.
visArgs.z = 10;
visArgs.speed = 8;
Dan kun je gewoon dat object doorgeven, en de nodige parameters parsen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan