Avatar billede maqhem Nybegynder
16. november 2006 - 09:58 Der er 2 kommentarer og
1 løsning

Class levelkonstruktor

Min levelkonstruktor duer ikke. Hvorfor ikke?

---

// Flash.fla
var level0:Level = new Level({x:6, y:3}, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18);
trace("x: " + level0.getDimmention.x);
trace("y: " + level0.getDimmention.y);
for(var a:Number = 1; a <= level0.getDimmention.y; a++) {
    for(var b:Number = 1; b <= level0.getDimmention.x; b++) {
        trace("(" + a + ", " + b + "): " + level0.coordinates(a, b));
    }
}
//Levelkonstruktor
constructLevel();

---

// Level.as:
class Level {
    private var levelCode:Array = new Array();
    private var levelMatrix:Array = new Array();
    private var xLength:Number = new Number();
    private var yLength:Number = new Number();
    private var platforms:Number = new Number();
    public function Level() {
        levelCode = arguments;
        xLength = levelCode[0].x;
        yLength = levelCode[0].y;
        platforms = xLength * yLength;
        for(var i:Number = 1; i <= xLength * yLength; i++) {
            levelMatrix[(int((i - 1) / xLength) + 1) + "." + ((i - 1) % xLength + 1)] = levelCode[i];
        }
    }
    public function set constructLevel():Void {
        for(var i:Number = 0; i < platforms; i++) {
            with(_root.attachMovie("pf", "pf" + i, i)) {
                _x = 100;
                _y = 100;
            }
        }
    }
    // Levelkonstruktor
    public function coordinates(xp:Number, yp:Number):Number {
        return levelMatrix[xp + "." + yp];
    }
    public function get getDimmention() {
        return {x:xLength, y:yLength};
    }
}

---

Nicolaj Wahlqvist
Avatar billede maqhem Nybegynder
16. november 2006 - 10:33 #1
... og hvorfor er det egentligt en nødvendighed at have "get" inkluderet i initialiseringen af funktionen til getDimmention?
Avatar billede maqhem Nybegynder
16. november 2006 - 10:48 #2
Hov, rettelse:

// Levelkonstruktor
skal stå over
public function set constructLevel():Void {

og dertil er "set" en fejl, så koden ser således ud:

// Level.as:
class Level {
    private var levelCode:Array = new Array();
    private var levelMatrix:Array = new Array();
    private var xLength:Number = new Number();
    private var yLength:Number = new Number();
    private var platforms:Number = new Number();
    public function Level() {
        levelCode = arguments;
        xLength = levelCode[0].x;
        yLength = levelCode[0].y;
        platforms = platforms;
        for(var i:Number = 1; i <= xLength * yLength; i++) {
            levelMatrix[(int((i - 1) / xLength) + 1) + "." + ((i - 1) % xLength + 1)] = levelCode[i];
        }
    }
    // Levelkonstruktor
    public function constructLevel():Void {
        for(var i:Number = 0; i < platforms; i++) {
            with(_root.attachMovie("pf", "pf" + i, i)) {
                _x = 100;
                _y = 100;
            }
        }
    }
    public function coordinates(xp:Number, yp:Number):Number {
        return levelMatrix[xp + "." + yp];
    }
    public function get getDimmention() {
        return {x:xLength, y:yLength};
    }
}
Avatar billede maqhem Nybegynder
16. november 2006 - 10:54 #3
Ups, det var sgu en fejl fra min side af. Jeg kalder en funktion hvis instans ikke er defineret :)

Rettelse:
constructLevel();

Til:
level0.constructLevel();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester