@schattenjäger:
Auch auf die gefahr hin, dass ich wieder geprügelt werde...here we go (bei prototypen werd ich schwach...) !
Man nehme: einen ball aus der bibliothek und gibt ihm den bezeichner 'clip'. setzt ihn links NEBEN die Bühne und gibt seiner y-koordinate den wert 200.
in das erste BILD (Frame) kommt folgender Code:
PHP:
MovieClip.prototype.startposition = function () {
this._x=0;
this._y=200;
this._xscale=50;
this._yscale=50;
}
MovieClip.prototype.mover=function(){
this.onEnterFrame=function(){
if (this._x> 550){
this.startposition();
} else {this._x+=8;
this._xscale+=4;
this._yscale+=4;
}
}
}
clip.mover();
zur Erklärung: wir haben dem Objekt MovieClip zwei neue Methoden geschenkt. Was sind Methoden?
MovieClip.stop() ist eine Methode der Klasse MovieClip. Wieso Klasse? Wenn ihr einen MC aus der Bibliothek auf die Bühne stellt, ist es eine Instanz. Eine Instanz der Klasse MovieClip. Das heisst: Jede Instanz kann das was seine Klasse kann. Wenn die Klasse was neues lernt, können es ihre Instanzen automatisch auch.
Bsp: die Klasse MovieClip kann stopen: stop() .Dies ist eine sog. eingebaute Methode. Das heisst: das MovieClip Klasse kann etwas: anhalten. Diese Methode befindet sich bereits im Prototyp vom Objekt MovieClip. Die Flash-Entwickler haben sie bereits dort reingeschrieben. Der Prototype von einem Objekt ist wie ein Container, wo alle Fähigkeiten (=methoden, zB stop) gesammelt werden. Stop () wird oft gebraucht. Deshalb ist es schon drin. Die Methode von links nach rechts scrollen und dabei grösser werden wird weniger oft gebraucht. Deshalb müssen wir sie selber in den Prototyp von MovieClip hineinschreiben. Und genau das habe ich oben gemacht.
Meine erste Methode heisst startposition. Wenn ich diese Methode auf eine Instanz eines MC anwende
springt der MC auf die in der Methode gewählten Koordinaten (0/200) und nimmt die mit x/yscale eingestellte Grösse an. In unserem Fall die Position, die der Ball wieder einnehmen soll, wenn er den Screen rechts verlassen hat. Diese Methode kann ich nun auf beliebig viele mc's anwenden. Hier beginnt übrigens objekt orientiertes programmieren.
Die zweite Methode bringt einen mc dazu nach rechts zu scrollen und grösser zu werden. Wenn der Ball einen bestimmten Punkt auf der x-achse (550-breite der bühne) erreicht hat, wird die methode startposition aufgerufen. und das ganze beginnt von vorne.
'this' spielt eine wichtige rolle, weil: wenn wir unsere methode erstellen, wissen wir ja noch nicht, auf welchen mc sie angewendet werden soll. deshalb spielt this einen platzhalter und steht für den mc, auf den die methode gerade angewendet wird. in casu clip.
this kann aber auch eine referenz auf eine zeitleiste sein. zb bei this.onEnterFrame:die zeitleiste des mc clip: das ist wichtig, weil die zeitleiste von _root sollte man nicht mit einem onEnterFrame belegen.
Ich denke, dass wer diese dinge verstanden hat, auch ein bisschen verstehen kann, wie flash funktioniert und aufgebaut ist.
hope it helps
skyla
:-(