Avatar billede Slettet bruger
01. november 2008 - 20:24 Der er 4 kommentarer og
1 løsning

Forkortelse af kode

Hej alle sammen, og godaften.

Jeg sidder her og leger lidt med noget AS 2.0, og synes efterhånden min kode er blevet lidt lang. Koden:

menu_1_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_1_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_2_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_2_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_3_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_3_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_4_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_4_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_5_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_5_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_6_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_6_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_7_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_7_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_8_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_8_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}
menu_9_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_9_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}

Kan man ikke lave dette med en for-løkke? Jeg er bare ikke helt sikker på hvordan den skal se ud. Altså opbygningen er jo bare

menu_[tal fra 1-9 her]_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
menu_[tal fra 1-9 her]_mc.hit_mc.onRollOut = function() {
    menu_out(this._parent);
}

Håber I vil hjælpe. Tak!
Avatar billede w13 Novice
01. november 2008 - 21:19 #1
Når flere MC's skal have samme funktion, mener jeg bare, du kan gøre således:

menu_1_mc.hit_mc.onRollOver = menu_2_mc.hit_mc.onRollOver = menu_3_mc.hit_mc.onRollOver = function() {
    menu_over(this._parent);
}
Avatar billede Slettet bruger
01. november 2008 - 21:35 #2
Tak for svaret. :) Fandt også en anden løsning:

for (var i = 1; i <= 9; i++) {
    button = eval("menu_"+i+"_mc.hit_mc");
    button.onRollOver = function() {
        menu_over(this._parent);
    }
    button.onRollOut = function() {
        menu_out(this._parent);
    }
}

Men din virker skam på samme måde! Smid lige et svar! :)
Avatar billede w13 Novice
01. november 2008 - 21:46 #3
;)
Avatar billede w13 Novice
01. november 2008 - 21:47 #4
Pas dog på med eval(), gør i stedet sådan her:

for (var i = 1; i <= 9; i++) {
    button = _root["menu_"+i+"_mc.hit_mc"];
    button.onRollOver = function() {
        menu_over(this._parent);
    }
    button.onRollOut = function() {
        menu_out(this._parent);
    }
}

Burde gøre det samme.
Avatar billede Slettet bruger
01. november 2008 - 21:51 #5
Mange tak. :)
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