[ascoders] Re: OOP Frage

  • From: timo stamm <t.stamm@xxxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Thu, 21 Nov 2002 22:50:41 +0100

siehe mein beispiel:

//--- an bestehendes objekt vererben
meinMC.__proto__ = klasse.prototype; // methoden vererben
meinMC.init("wert"); // "konstruktor" aufrufen



meinMC.__proto__ = klasse.prototyp ist keine gute idee. les dir doch mal ein paar tutorials durch, mach deine eigenen versuche und vor allem überlege _warum_ etwas so oder so gemacht ist. das überlegen kann dir niemand abnehmen.


timo



Am Donnerstag, 21.11.02 um 12:00 Uhr schrieb Peter.Geller@xxxxxxxx:



Hi Timo,
Dann bei dem Beispiel mit dem vererben der Prototypklassen an Mcs,
den Konstruktor bei deinem Beispiel ist ja Klasse (oder?)
Die Eigenschaften die dort drin stehen,
kann man beim attachen aus der Bibliothek prima mitgeben, allerdings wenn die Mcs schon auf der Bühne liegen
klappt das bei mir nicht.
Ich kann nur mit hilfe von meinMC.__proto__ = klasse.prototype die Methoden der Klasse an die Mcs vererben,
nicht aber die Eigenschaften des Konstruktors.
Das meinte Ich


Sorry

Peter


<image.tiff>




was ist eine grundklasse und deren inhalte?

in flash haben klassen nur methoden und einen konstruktor.
in der instanz der klasse können werte mit dem konstruktor gesetzt und
mit den methoden verändert werden.

sieher mein beispiel.


timo



Am Mittwoch, 20.11.02 um 15:36 Uhr schrieb Peter.Geller@xxxxxxxx:


>
> Hi,
> die Vererbung der Prototypen klappt ja wunderbar,
> wie kann ich den die eigentliche Grundklasse und deren Inhalte auf
> einen MC bringen?
>
> Gruß Peter
>
>
<image.tiff>
>
>
>
>
> Eine wirklich sehr prägnante Zusammenfassung.
> Damit kann man einige Kapitel (von sogar recht guten AS-Büchern) in
> einen
> Absatz schreiben.
> ;-)
>
> Gruß
> _____
> Arne
>
>
>
> ----- Original Message -----
> From: "timo stamm" <t.stamm@xxxxxxxxxx>
> To: <ascoders@xxxxxxxxxxxxx>
> Cc: "timo stamm" <t.stamm@xxxxxxxxxx>
> Sent: Wednesday, November 13, 2002 8:22 PM
> Subject: [ascoders] Re: OOP Frage
>
>
> > peter,
> >
> >
> > das wird dir vielleicht helfen:
> >
> >
> > //--- klasse definieren
> > klasse = function (argument) {
> >     this.init(argument);
> > };
> > klasse.prototype = new MovieClip(); // ist nur nötig wenn die
> > zielinstanz MC ist
> > klasse.prototype.init = function (argument) {
> > this.daten = argument;
> > };
> > klasse.prototype.methode = function () {
> > return this.daten;
> > };
> >
> > //--- an bestehendes objekt vererben
> > meinMC.__proto__ = klasse.prototype; // methoden vererben
> > meinMC.init("wert"); // "konstruktor" aufrufen
> >
> > meinMC.methode(); // "wert"
> >
> >
> > Timo
> >
> >
> > Am Dienstag, 12.11.02 um 13:24 Uhr schrieb Peter.Geller@xxxxxxxx:
> >
> > >
> > > Hi,
> > > ich kann ohne Probleme Klassen erstellen davon Instanzen und
> widerrum
> > > verschiedene Eigenschaften vererben,
> > > allerdings habe ich ein Problem damit, die Eigenschaften auf schon
> > > bestehende MCs auf der Bühne weiterzugeben.
> > > (ohne jetzt mit registerClass Klassen an MCs aus der Bühne
> > > zuverknüpfen)
> > >
> > > Danke Peter
> > >
> > >
> > <image.tiff>
> > >
> > >
> > >
> > >
> > > Aloha,
> > >
> > > prototype kannst Du benutzen um bestehende Klassen (Object,
> Movieclip,
> > > Array ...) um Methoden ( ~ klasseneigene Funktionen ) zu erweitern,
> > > oder um eigenen Klassen Methoden zu geben.
> > > Der Nachteil wenn man jeden MC eine ähnliche Funktion gibt, die man
> > > eventuell auch einfach durch Übergabe von Parametern lösen könnte
> ist
> > > erstens die Eleganz und Konsistenz als auch der Speicherbedarf.
> > >
> > > BSP für Klasse und prototype:
> > >
> > > function Class(id){ // Klassenkonstruktor
> > > this.id = id
> > > }
> > > Class.prototype.ident = function(){ //Klassenmethode
> > > trace(this.id);
> > > }
> > > test = new Class("aloha"); // Instanz erstellen
> > > test.ident(); // Methode aufrufen
> > >
> > > Grüße
> > > Manuel
> > > ----- Original Message -----
> > > From: Peter.Geller@xxxxxxxx
> > > To: ascoders@xxxxxxxxxxxxx
> > > Sent: Tuesday, November 12, 2002 9:01 PM
> > > Subject: [ascoders] Re: OOP Frage
> > >
> > >
> > > Das hieße ich schreibe oder verweise einfach die Funktion in das
> > > Objekt, um es dann später aufrufen zu können.
> > > D.h. prototypfunktionen benutze ich nur für Klassen von denen ich
> > > Instanzen erzeugt habe, oder?
> > > Hat es eigentlich irgendwelche Nachteile wenn ich die Funktion an
> den
> > > Mc anhänge?
> > > Ich habe nämlich momentan mehrere Mcs denen ich verschiedene
> > > Eventeigenschaften verpasst habe damit ich z.B.
> > > Buttonfunktionen alle übersichtlich auf dem ersten Keyframe habe
> und
> > > abändern kann.
> > >
> > > Gruß Peter
> > >
> > <image.tiff>
> > >
> > >
> > >
> > >
> > >
> > > Hallo,
> > >
> > > das kannst Du schon, aber dazu solltest Du "renndaten" als Klasse
> > > definieren.
> > > Ein Movieclip an sich hat keinen Prototype, lediglich die Klasse
> > > Movieclip....
> > > Einen prototype für einen MC zu definieren, macht auch eigentlich
> > > keinen Sinn, da kannst Du ja auch einfach ne Funktion machen....
> > >
> > > Ich würd das eh eher so schreiben:
> > > movieclip.prototype.preselect = function(){
> > > trace("hallo");
> > > } ;
> > > this.renndaten.maerz_03.preselect();
> > >
> > >
> > > Grüße
> > > Manuel
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: Peter.Geller@xxxxxxxx
> > > To: ascoders@xxxxxxxxxxxxx
> > > Sent: Tuesday, November 12, 2002 8:05 PM
> > > Subject: [ascoders] OOP Frage
> > >
> > >
> > > Hi,
> > > warum klappt das so
> > >
> > > loslassen = function(){trace("hallo"}
> > > MovieClip.prototype.preselect = loslassen;
> > > this.renndaten.maerz_03.preselect();
> > >
> > > und nicht so
> > >
> > > loslassen = function(){trace("hallo"}
> > > this.renndaten.maerz_03.prototype.preselect = loslassen;
> > > this.renndaten.maerz_03.preselect();
> > >
> > > wenn ich die Funktion schon mit prototyp auf bestehende Mcs
> vererben
> > > kann,
> > > wieso nicht auf einen speziellen???
> > >
> > > Gruß Peter
> >
> > ------------------------------------------------------
> > Archiv   : //www.freelists.org/archives/ascoders/
> > Optionen : //www.freelists.org/list/ascoders
> > ------------------------------------------------------
>
> ------------------------------------------------------
> Archiv   : //www.freelists.org/archives/ascoders/
> Optionen : //www.freelists.org/list/ascoders
> ------------------------------------------------------
>


------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------


------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------

Other related posts: