[ascoders] registerClass/Rückgabe von attachMovie

  • From: "Verena Lux" <verena.lux@xxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Wed, 27 Nov 2002 18:50:33 +0100

Hallo dies ist ein Stück des jump n run Spiels aus dem Buch Flash MX
Professional. 
Dazu habe ich folgende Fragen:
1.      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 } );
                        }
            }
}

Other related posts: