Avatar billede bennybangkarl Nybegynder
30. august 2007 - 16:21 Der er 6 kommentarer

Hover-effekt vha. for-loop

Hejsa!

Jeg sidder og roder lidt med en menu, hvor der skal være lige hover-effekt på. Det, jeg gør, er at sætte menuen op fra starten af på følgende måde:
for(i=1; i < 5; i++){
    buttonname = "button_"+i;
    _root.attachMovie(i, buttonname, i);
    setProperty(_root.buttonname, _x, 250);
    setProperty(_root.buttonname, _y, (i-1)*30 + 60);
}
- det virker ganske udmærket.

Men - så ville jeg lave hovereffekt (her er en simplificeret til en simpel alpha-ændring) på menuen på følgende måde:

function onEnterFrame(){
    for(i=1; i < 5; i++){
        buttonname = "button_"+i;
        _root.buttonname.onRollOver = function(){
            _root.buttonname._alpha = 50;
        }
        _root.buttonname.onRollOut = function(){
            _root.buttonname._alpha = 100;
        }
    }
}
.. Det virker bare ikke, og jeg kan ikke se hvorfor. Hvis jeg prøver at erstatte buttonname med et navn på én af knapperne virker det perfekt for denne ene knap - og naturligvis ikke for de andre. Men i det her tilfælde, hvor den skulle tjekke alle, går den ikke.
Har lidt på fornemmelsen, det er fordi, der er noget galt med linkingen til menu-movieclip'ene, men kan ikke se, hvad der skal ændres.

I håb om svar.

Mvh. Benjamin
Avatar billede mat Nybegynder
30. august 2007 - 20:15 #1
Istedet for;

_root.buttonname.onRollOver

Skriver du;

_root[buttonname].onRollOver

mvh mat
Avatar billede bennybangkarl Nybegynder
30. august 2007 - 22:01 #2
Hej mat!

Tak for det hurtige svar. Desværre driller det stadig lidt; hovereffekten er sådan set synlig, men når man fører cursoren over én af de fire knapper, menuen består af, er det hver gang knap 4 (altså den sidste/nederste), der får ændret alpha. Hvordan kan det være - det skulle da elles virke fint, at den tjekker alle knapperne igennem i for-loopet og deraf fastslår, hvilken knap, cursoren er over, og dermed halverer alpha på denne. Oder was..
Avatar billede mat Nybegynder
30. august 2007 - 22:29 #3
Oh, lad være med at kalde din function for onEnterFrame, kald den noget andet og kald den efter du har instancieret dine knapper.
Avatar billede mat Nybegynder
30. august 2007 - 23:34 #4
Prøv med;

for(i=1; i < 5; i++){
    buttonname = "button_"+i;
    a = _root.attachMovie(i, buttonname, i, {_x:250, _y:(i-1)*30 + 60});
    a.onRollOver = function(){
            this._alpha = 50;
    }
    a.onRollOut = function(){
            this._alpha = 100;
    }
}

Det ser lidt rarere ud...

mvh mat
Avatar billede bennybangkarl Nybegynder
31. august 2007 - 12:12 #5
Hej mat!

Endnu en gang tak for svaret! - sidder ikke p.t. ved den computer, jeg arbejder ved, men prøver det hurtigst muligt og vender tilbage.
Avatar billede bennybangkarl Nybegynder
01. september 2007 - 16:54 #6
.. og så virker det. Jeg siger mange tak - hvis der kommer et svar, kan jeg sende nogle point efter dig.
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