[ascoders] Re: AW: Re: AW: Sound Class erweitern
- From: Michael Kneib <listen@xxxxxxxxx>
- To: ascoders@xxxxxxxxxxxxx
- Date: Wed, 29 Oct 2003 11:24:06 +0100
Timo Hölzer wrote:
Ich erkläre mir das so:
"new" liefert die Instanz einer Klasse(Objekt).
Dabei passiert nichts anderes, als daß eine
leerer Instanz eines Kontainers(Object) mit
Methoden und Eigenschaften gefüllt wird.
Genauer gesagt wird ja das prototype Object
des mit diesen Methoden versehen, auf welche
die Klasse später zugreift.
o = GameSound.prototype = new Sound();
würde folglich bedeuten, daß das prototype Object
der Klasse GameSound die "Rückgabe" der Konstruktor
Funktion erhällt, nicht jedoch die Instanz der Klasse
Da das prototype Object von GameSound nun aber über
alle Methoden der Klasse Sound verfügt, hat die Vererbung
stattgefunden, die Initialisierung jedoch nicht.
Was hällst du von dieser Erklärung???
ja dashört sich schlüssig an.
ohne super sind die sound_eigenschaften_ auch nicht vorhanden:
Strg+Alt+V:
Stufe #0:
Variable _level0.$version = "WIN 6,0,65,0"
Variable _level0.GameSound = [Funktion] {
prototype:[Objekt #2, Klasse 'Sound'] {
playSound:[Funktion 'playSound']
}
}
Variable _level0.o = [Objekt #2, Klasse 'Sound']
Variable _level0.a = [Objekt #4, Klasse 'Sound'] {}
mit super() hingegen schon:
Stufe #0:
Variable _level0.$version = "WIN 6,0,65,0"
Variable _level0.GameSound = [Funktion] {
prototype:[Objekt #2, Klasse 'Sound'] {
playSound:[Funktion 'playSound'],
id3:[Get/Set] undefined,
duration:[Get/Set] undefined,
position:[Get/Set] undefined
}
}
Variable _level0.o = [Objekt #2, Klasse 'Sound']
Variable _level0.a = [Objekt #4, Klasse 'Sound'] {
id3:[Get/Set] undefined,
duration:[Get/Set] 2061,
position:[Get/Set] 2061
}
ich erstelle meistens nur unterklassen von Movieclip, wo ich noch nie super()
benutzt habe, aber da übernimmt dann wohl Object.registerclass den
konstruktoraufruf.
oooder? :o)
ein lehrreicher morgen
dankeschön
gruß
michael
------------------------------------------------------
Archiv : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------
- References:
- [ascoders] AW: Re: AW: Sound Class erweitern
- From: Timo Hölzer
Other related posts:
- » [ascoders] AW: Re: AW: Sound Class erweitern
- » [ascoders] Re: AW: Re: AW: Sound Class erweitern
Ich erkläre mir das so:
"new" liefert die Instanz einer Klasse(Objekt).
Dabei passiert nichts anderes, als daß eine leerer Instanz eines Kontainers(Object) mit Methoden und Eigenschaften gefüllt wird. Genauer gesagt wird ja das prototype Object des mit diesen Methoden versehen, auf welche die Klasse später zugreift.
o = GameSound.prototype = new Sound();
würde folglich bedeuten, daß das prototype Object der Klasse GameSound die "Rückgabe" der Konstruktor Funktion erhällt, nicht jedoch die Instanz der Klasse
Da das prototype Object von GameSound nun aber über alle Methoden der Klasse Sound verfügt, hat die Vererbung stattgefunden, die Initialisierung jedoch nicht.
Was hällst du von dieser Erklärung???
- [ascoders] AW: Re: AW: Sound Class erweitern
- From: Timo Hölzer