Avatar billede noreasonforthat Nybegynder
07. februar 2005 - 10:15 Der er 3 kommentarer

hjælp til mapping

Jeg har nogle problemer med at få min menu til at reagere helt korrekt. Jeg laver 12 kasser i et 3*4 grid. Det skal så fungere således at i de tilfælde at visse punkter ikke er aktive skal den gå videre og finde næste aktive, men IKKE bryde/ gå ud over kanterne på mappet. Altså i nedenstående skal man kunne gå fra 1 til 11 hvis man trykker pil ned og pil højre går til 4 og 8 og så ikke videre.

    menuMap = [
    [0,4,8],
        [1,5,9],
        [2,6,10],
        [3,7,11]
        ];

        menu[0] = new menuElement(menu.length, "1", false);
    menu[4] = new menuElement(menu.length, "2", false);
    menu[8] = new menuElement(menu.length, "3", false);
    menu[11] = new menuElement(menu.length, "4", false);


function menuMove(direction){
    var boxX = boxMapX;
    var boxY = boxMapY;
    var changed = false;

    if(direction == 0 && menuParent > 0){
        for(i = boxMapY; i >= 0; i--){
            var b = box[boxMap[i][boxX]];
            if(!b.boxDisabled && b.boxId != boxMap[boxMapY][boxMapX]){
                boxMapY = i;
                menuSetActive(b.boxId);
                changed = true;
                break;
            }
        }
    }
   
    // og her kommer så lignende funktioner til de andre veje.
}


mit problem er tilføjer jeg flere menuelementer (f.eks nr 7) så virker min funktion ikke efter hensigten. Hvad gør jeg galt og hvordan kan jeg evt optimere mit script?
Avatar billede noreasonforthat Nybegynder
07. februar 2005 - 14:42 #1
?
Avatar billede noreasonforthat Nybegynder
07. februar 2005 - 14:42 #2
hov havde glemt at rette alle variabelnavne og b rugt "op" versionen. "direction" angiver hvilken tast, 1 er ned.

function menuMove(direction){
    var menuX = menuMapX;
    var menuY = menuMapY;
    var changed = false;

    if(direction == 1 && menuParent > 0){
        for (var x = menuX; x < 3; x++){
            for (var y = menuY; y < 4; y++){
                if(!menu[menuMap[y][x]].menuDisabled && boxMapY != y && menu[menuMap[y][x]].menuId != menuParent){
                    menuMapY = y;
                    menuMapX = x;
                    menuSetActive(menuMap[menuMapY][menuMapX]);
                    break;
                }       
            }
        }
    }
    // og her kommer så lignende funktioner til de andre veje.
}
Avatar billede noreasonforthat Nybegynder
08. februar 2005 - 09:29 #3
slet ingen eller mangler i informationer?
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