Thread: Base Class Constructor
-
17-01-2009, 18:02 #1
Base Class Constructor
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:
krijg ik de melding de klasse Fish1 geen attributen aanneemt...Code:var fishie1_mc:Fish1 = new Fish1(attribuut1, attribuut2);
Erft de class Fish1 niet de constructor van de Baseclass?no votes
-
-
17-01-2009, 19:02 #2
UPDATE:
Het lijkt op het eerste gezicht niet mogelijk, op de manier dat ik het wil.
default constructors with base classes? - kirupaForumno votes
-
17-01-2009, 19:27 #3
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...no votes
-
17-01-2009, 22:08 #4
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.
Niet zo erg als je 5 vissoorten hebt, maar als je er 100 gaat hebben, kan dat soms nogal overvloedig zijn.no votes
-
18-01-2009, 14:47 #5
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.no votes
