[ascoders] Re: OOP Frage

  • From: Peter.Geller@xxxxxxxx
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Mon, 18 Nov 2002 15:25:02 +0100

Hi Timo,
das Vererben der Methoden an die Mcs funktioniert super,
wenn ich allerdings indem Mc selber etwas definiere wie z.B  x = 200;
ist meinMC.x = undefined und nicht = 200,
momentan schreib ich in den MC selber ein OnLoadEvent wo sein erster x 
wert an sich selber übergeben wird,
kann man das nicht irgendwie anders machen.

Gruß und danke 
Peter




timo stamm <t.stamm@xxxxxxxxxx>
Sent by: ascoders-bounce@xxxxxxxxxxxxx
13.11.2002 20:22
Please respond to ascoders
 
        To:     ascoders@xxxxxxxxxxxxx
        cc:     timo stamm <t.stamm@xxxxxxxxxx>
        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
------------------------------------------------------

Other related posts: