[ascoders] Re: registerClass/Rückgabe von attachMovie

Hallo Verena,

also, erstmal zweitens, weil erstens darauf aufbaut.
attachMovie gibt, entgegen der Dokumentation, eine Referenz auf die neue
Instanz zurück. Damit passiert also das gleiche wie beim Aufruf von:

this.loc.attachMovie( "player" , "player" , this.map[0].length *
this.map.length + 1 , playerProperties );
this.player = this.loc.player;

zu zweitens:
Da das player-symbol c in World.prototype.build attached wird, macht es
auch sinn, es in dieser Methode (und natürlich vor dem attachen) mit der
Klasse "character" zu verknüpfen. Vor dem ersten attachen eines Symbols,
daß die mit der Klasse Character verknüft sein soll, gibt es ja noch gar
keine Instanz von Character, also würde auch eine entsprechende Methode
nicht aufgerufen werden.

Ich hoffe, das hilft Dir weiter,
Till

-----Original Message-----
From: ascoders-bounce@xxxxxxxxxxxxx
[mailto:ascoders-bounce@xxxxxxxxxxxxx] On Behalf Of Verena Lux
Sent: Wednesday, November 27, 2002 6:51 PM
To: ascoders@xxxxxxxxxxxxx
Subject: [ascoders] registerClass/Rückgabe von attachMovie


Hallo dies ist ein Stück des jump n run Spiels aus dem Buch Flash MX
Professional. 
Dazu habe ich folgende Fragen:
Warum steht die Zeile 
Object.registerClass( "player" , Character );
in einer Funktion der Klasse World? Würde es einen Unterschied machen,
wenn die Registrierung in einer Funktion der Klasse Charakter stehen
würde? Ist das Objekt Player nur Objekt der Klasse Charakter, oder auch
irgendwie Teil der Klasse World. Erzeugt diese Zeile auch ein Verhältnis
zwischen den beiden Klassen? Sehe ich das richtig, dass registerClass
die Erzeugung durch new  Charakter einschließt? Heißt das erzeugte
Objekt Player?siehe unten.
 
2. Was ist die Rückgabe von attachMovie? (Laut Referenz gar keine) Was
demnach der wert von player? Wo kommt this.Player her? Von der Zeile aus
Frage    1.? Wenn player ein Objekt ist, zu welcher Klasse gehört es
dann?
 
Ihr seht Jungs ;-) alles ein wenig verwirrt, wär toll wenn mir jemand
den ganzen Zusammenhang erläutern könnte!
Danke
Verena
 
//**************Klasse Character wird geschaffen*******************
 
Character = function () {};
Character.prototype = new MovieClip();
 
//***************Klasse World wird geschaffen********************
 
World = function ( loc , gridsize , map ) {
this.loc = loc;
            this.gridsize = gridsize;
            this.map = map;
}
 
//***************Funktion für Klasse World***********************
 
World.prototype.build = function () {
Object.registerClass( "player" , Character );
var tile;
for ( var k = 0 ; k < this.map.length ; k++ ) {
                        for ( var i = 0 ; i < this.map[0].length ; i++ )
{
                                   if ( this.map[k][i] == 9 ) {
                                               var playerProperties = {
                                                           _x: i *
this.gridsize,
                                                           _y: k *
this.gridsize,
                                                            x: i,
                                                            y: k,
                                                           control:
Usercontrol,
                                                           jumpHeight:
6,
                                                           jumpFreq: .6,
                                                           runSpeed: 2,
                                                           climbSpeed:
1,
                                                           World: this
                                               };
                                               this.player =
this.loc.attachMovie( "player" , "player" , this.map[0].length *
this.map.length + 1 , playerProperties );
                                               // first assigment to
character //
                                               this.player.onEnterFrame
= this.player.onPlatForm;
                                               this.map[k][i] = 0;
// free tile
                                   }
                                   this.loc.attachMovie ( "tile" +
this.map[k][i] , "tile" + k +"_" + i , num++, { _x: i * this.gridsize,
_y: k * this.gridsize } );
                        }
            }
}

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

Other related posts: