Avatar billede Slettet bruger
12. februar 2004 - 13:17 Der er 11 kommentarer og
1 løsning

Samme function på flere buttons

Jeg har følgene script:
this.linktavle.link1.onRollOver = function() {
    _root.linktavle.link1._alpha = 20;
}
this.linktavle.link1.onRollOut = function() {
    _root.linktavle.link1._alpha = 100;
}

Kan det ikke lade sig gøre at lave det nemmere, da jeg måske skal bruge denne function til 20 links. og det kommer jo til at fylde en hel del....
Avatar billede docks Nybegynder
12. februar 2004 - 13:24 #1
ved ikke om dette vil fungere, men prøv:

var m;
for(x=1;x<20;x++) {
    m = eval(x) ;
    m.id = x;
    m.linktavle.link1.onRollOver = function() {
    _root.linktavle.link1._alpha = 20;
  }

m.linktavle.link1.onRollOut = function() {
    _root.linktavle.link1._alpha = 100;
  }
}
Avatar billede Slettet bruger
12. februar 2004 - 13:38 #2
mine buttons hedder link1, link2, link3, osv....
Avatar billede Slettet bruger
12. februar 2004 - 13:40 #3
kan ikke få det til at virke...
Avatar billede nikolajdu Nybegynder
12. februar 2004 - 13:45 #4
for (x = 1; x < 20; x++) {
    this["link" + x].onRollOver = function () {
        this._alpha = 20;
    };
    this["link" + x].onRollOut = function () {
        this._alpha = 100;
    };
}
Avatar billede Slettet bruger
12. februar 2004 - 13:53 #5
Tak nikolajdu det virkede efter lidt korrektion af stien.
Så det kom til at se således ud:
//Rollover af links
for (x = 1; x < 20; x++) {
    _root.linktavle["link" + x].onRollOver = function () {
        this._alpha = 20;
    };
    _root.linktavle["link" + x].onRollOut = function () {
        this._alpha = 100;
    };
}
Læg svar....
Avatar billede nikolajdu Nybegynder
12. februar 2004 - 13:55 #6
Korrektion af stien. Det kommer jo an på hvor man lægger scriptet....

Jeg ville lægge det inde i linktavle - Så virker min version fint.
Avatar billede nikolajdu Nybegynder
12. februar 2004 - 13:56 #7
Og så skal der vel stå 21 hvis det skal virke fra 1 til 20.... ;-)
Avatar billede Slettet bruger
12. februar 2004 - 13:56 #8
Ja okay. Har bare fået den opfattelse af at det er bedst at samle alt actionscript i en frame i roden. Men okay. Endnu en gang tak..
Avatar billede nikolajdu Nybegynder
12. februar 2004 - 14:03 #9
Det kan være en fordel at samle en del i roden, men hvis du skal _root.linktavle["link" + x].ligeherogder.lidttil.og.megetmere.cvjoergensen.og.sannesalomonsen._alpha

Så kan jeg ikke se fordelen i ikke at samle det inde hvor det hører til.
Avatar billede nikolajdu Nybegynder
12. februar 2004 - 14:03 #10
I sådan et tilfælde ville jeg nok vælge at lave noget i roden der kunne kaldes derinde fra ihvertilfald.
Avatar billede Slettet bruger
12. februar 2004 - 14:10 #11
He he cool sti ;-)
Avatar billede barklund Nybegynder
15. februar 2004 - 14:06 #12
Ovenstående er lidt uoptimalt. Du laver 20 funktioner til rollOver, der alle indeholder det samme samt 20 funktioner til rollOut. De er alle anonyme og optager hver en del af hukommelsen. Hvis du u stedet lavede 1 funktion til hver handling og assignede hver event til en reference til disse, ville det være smartere:

// min rollOver
function myRollOver = function() { this._alpha = 20; };
// min rollOut
function myRollOut = function() { this._alpha = 100; };
// rollover af links
for (x = 1; x < 20; x++) {
    _root.linktavle["link" + x].onRollOver = myRollOver;
    _root.linktavle["link" + x].onRollOut = myRollOut;
}
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