[ascoders] Re: AW: Re: OOP Frage

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

Heißt das, dass ich die eigene Anfangs x position die ich per Drag und 
Drop festlege
nur in den Mc schreiben kann mit OnClipEvent(load)... 
oder kann ich das auch in der TL machen.
Das Script auf dem 1ten Keyframe sieht übrigens momentan so aus, die 
vergabe der einzelnen Wert der Mcs selber
liegen auf dem MC(onClipEvent(load){x = this._x;y = this._y;rot = 
this._rotation;scale = this._xscale} ::

friction = 0.1;
bounce = 0.8;
newname = "";
oldname = "";
// Klassendefinition
Foto = function(){ 
}
// Zielinstanz ist ein Mc
Foto.prototype = new MovieClip();

// Methoden
Foto.prototype.bewegung = function(xwert,ywert,scale,rotation){
        diffx = diffx * bounce + (this._x - xwert) * friction;
        diffy = diffy * bounce + (this._y - ywert) * friction;
        diffrot = diffrot * bounce + (this._rotation - rotation) * 
friction;
        diffscale = diffxscale * bounce + (this._xscale - scale) * 
friction;
        this._x -= diffx;
        this._y -= diffy;
        this._rotation -= diffrot;
        this._xscale -= diffscale;
        this._yscale -= diffscale;
}
Foto.prototype.aktiv = function(){
        this.onEnterFrame = this.aktiv
        this.bewegung(418.7,115,100,0);
}
Foto.prototype.inaktiv = function(){
        this.bewegung(this.x,this.y,this.scale,this.rot);
}

// an bestehendes Objekt vererben
foto_1.__proto__ = Foto.prototype;
foto_2.__proto__ = Foto.prototype;
foto_3.__proto__ = Foto.prototype;

// Aufrufe
clicked = function(){
        oldname = newname;
        newname = eval("this."+[this._name]);
        newname.onEnterFrame = this.aktiv;
        oldname.onEnterFrame = this.inaktiv;
};

foto_1.onRelease = clicked;
foto_2.onRelease = clicked;
foto_3.onRelease = clicked;


stop();

Gruß Peter




"Jursa, Jan (init)" <Jan.Jursa@xxxxxxx>
Sent by: ascoders-bounce@xxxxxxxxxxxxx
18.11.2002 15:36
Please respond to ascoders
 
        To:     "'ascoders@xxxxxxxxxxxxx'" <ascoders@xxxxxxxxxxxxx>
        cc: 
        Subject:        [ascoders] AW: Re: OOP Frage


hi peter,
das liegt daran, dass script in _root initialisiert wird BEVOR dein MC 
oder script auf seiner TL eingelesen wird.
das heisst am anfang  kennt dein script kein meinMC und weiss nicht was 
der für vars hält...
grüsse,
J>N
 
 
 
-----Ursprüngliche Nachricht-----
Von: Peter.Geller@xxxxxxxx [mailto:Peter.Geller@xxxxxxxx]
Gesendet: Montag, 18. November 2002 15:25
An: ascoders@xxxxxxxxxxxxx
Betreff: [ascoders] Re: OOP Frage


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: