[ascoders] Re: OOP Frage

  • From: timo stamm <t.stamm@xxxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Wed, 13 Nov 2002 11:22:11 -0800

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: