Avatar billede andersthingholm Nybegynder
12. juli 2005 - 23:10 Der er 5 kommentarer og
1 løsning

2 klasser i AS2

Hej,

Jeg har en metode i en klasse:

    public function setExposedCells() {
        // Lav array med alle tal
        for (var i = 0; i<numCells; i++) {
            cellNumberArray.push(i);
        }
        trace(cellNumberArray);
        // Bland array tilfældigt
        //cellNumberArray = randomizeArray(cellNumberArray);
        cellNumberArray = cellNumberArray.slice(0, exposedCells);
        trace(" ");
        trace(cellNumberArray);
        // Farver exposed cells og sætter exposed = true
        for (var i = 0; i<cellNumberArray.length; i++) {
            var my_color:Color = new Color(pieces_mc["piece"+cellNumberArray[i]].background_mc);
            my_color.setRGB(0xA7C8C9);
            pieces_mc["piece"+cellNumberArray[i]].exposed = true;
        }
    }

En anden klasse ser således ud:

class dk.thingholm.tools.randomizeArray {
    private var inputArray:Array;
    public function randomizeArray(inputArray:Array) {
        trace(inputArray);
    }
}

Men når jeg prøver at køre denne: cellNumberArray = randomizeArray(cellNumberArray);

Får jeg denne fejl:

**Error** C:\Download\Sudoku\dk\thingholm\gameBoard.as: Line 100: Type mismatch in assignment statement: found dk.thingholm.tools.randomizeArray where Array is required.
            cellNumberArray = randomizeArray(cellNumberArray);

Jeg håber at nogen kan hjælpe
Avatar billede barklund Nybegynder
12. juli 2005 - 23:32 #1
For det første bør du fasttype alle dine variabler, når du bruger AS2. Derudover skal du specificere returtyper. Altså du har:

class dk.thingholm.tools.ArrayUtils {
    public static function randomizeArray(inputArray:Array):Array {
        trace(inputArray);
        // gør noget ved inputarray eller lav et nyt
        return inputArray;
    }
}

Så har du nu en statisk metode på ArrayUtils-klasen, som du kan kalde som var sorteret_array:Array = ArrayUtils.randomizeArray(mit_array);

Og det bruger du da som:

    public function setExposedCells():Void {
        // Lav array med alle tal
        cellNumberArray = new Array();
        for (var i:Number = 0; i<numCells; i++) {
            cellNumberArray.push(i);
        }
        trace(cellNumberArray);
        // Bland array tilfældigt
        cellNumberArray = ArrayUtils.randomizeArray(cellNumberArray );
        trace(cellNumberArray);
        // Farver exposed cells og sætter exposed = true
        var my_color:Color;
        for (i = 0; i<cellNumberArray.length; i++) {
            my_color = new Color(pieces_mc["piece"+cellNumberArray[i]].background_mc);
            my_color.setRGB(0xA7C8C9);
            pieces_mc["piece"+cellNumberArray[i]].exposed = true;
        }
    }

Håber du følger alle mine ændringer ;)

--
Morten Barklund
Avatar billede andersthingholm Nybegynder
12. juli 2005 - 23:39 #2
Hej igen,

så har jeg:

    public function setExposedCells() {
        // Lav array med alle tal
        for (var i = 0; i<numCells; i++) {
            cellNumberArray.push(i);
        }
        trace(cellNumberArray);
        // Bland array tilfældigt
        cellNumberArray = ArrayUtils.randomizeArray(cellNumberArray);
        cellNumberArray = cellNumberArray.slice(0, exposedCells);
        trace(" ");
        trace(cellNumberArray);
        // Farver exposed cells og sætter exposed = true
        for (var i = 0; i<cellNumberArray.length; i++) {
            var my_color:Color = new Color(pieces_mc["piece"+cellNumberArray[i]].background_mc);
            my_color.setRGB(0xA7C8C9);
            pieces_mc["piece"+cellNumberArray[i]].exposed = true;
        }
    }

og

class dk.thingholm.tools.ArrayUtils {
    private var inputArray:Array;
    public function randomizeArray(inputArray:Array) {
        trace("wolla");
        trace(inputArray);
        return inputArray;
    }
}

Men får denne fejl:

**Error** C:\Download\Sudoku\dk\thingholm\gameBoard.as: Line 100: The property being referenced does not have the static attribute.
            cellNumberArray = ArrayUtils.randomizeArray(cellNumberArray);

VH

Anders
Avatar billede andersthingholm Nybegynder
12. juli 2005 - 23:41 #3
aahh, missede static function :-)
Avatar billede andersthingholm Nybegynder
12. juli 2005 - 23:41 #4
Konge, smider du et svar?
Avatar billede barklund Nybegynder
13. juli 2005 - 00:31 #5
Fin fin :)
Avatar billede barklund Nybegynder
13. juli 2005 - 09:26 #6
Tark for points ;)
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