Avatar billede thomasclausen Nybegynder
24. juni 2002 - 14:17 Der er 16 kommentarer og
1 løsning

Skjul knap efter 20 sek.

Jeg sidder og rodder med en rollover effekt, hvor når jeg har trykket på en knap bliver et MC synligt. Problematikken kommer når jeg efter 20 sek. gerne vil have MC'et til at fade ud igen!

i først frame er følgende script:
_root.forside._alpha = 0; // skjuler MC'et

på knappen som gør MC'et synligt er følgende scrip:
on (press) {
    _root.forside._alpha = 100;
}

og på MC'et har jeg prøvet med dette hjemmestrikket script:
onClipEvent (load) {
    if (_root.forside._alpha=100) {
        _root.forside = getTimer();
    }
    if (20*1000+_root.forside < getTimer()) {
        _root.forside._alpha = 0;
    }
}
Men det virker ikke, og som i nok kan se er jeg ingen Actionscript-haj, så jeg håber at der er en  eller anden der kan hjælpe mig, med at få ovenstående script til at virke, og måske endda hjælpe mig med at sætte en fade effekt på!
P.S. Bruger Flash 5
Avatar billede barklund Nybegynder
24. juni 2002 - 14:20 #1
Du må ikke kalde din variabel det samme som movieclippet (_root.forside)... Derudover skal variablen kun sættes een gang - nemlig hvis det ikke har været sat før...

onClipEvent (load) {
    if (_root.forside._alpha=100 && !timer) {
        timer = getTimer();
    }
    if (timer && 20*1000+timer < getTimer()) {
        delete timer;
        _root.forside._alpha = 0;
    }
}

Skulle virke...
Avatar billede barklund Nybegynder
24. juni 2002 - 14:28 #2
Nåja... det skulle jo være en enterFrame i stedet for en load. Derudover har jeg prøvet med noget fade:

Script i frame:

_root.forside._alpha = 0; //det starter slukket?


Script på knap:

_root.forside.end_alpha = 100; //fade til 100


Script på mc:

onClipEvent (load) {
    fade_step = 5; //hastighed til fade
}
onClipEvent (enterFrame) {
    if (_alpha != end_alpha) { //skal vi fade?
        _alpha += ( _alpha>end_alpha ? 1 : -1 )*fade_step;
    }
    else if (_root.forside._alpha=100) {
        if (!timer) timer = getTimer();
        if (timer && 20*1000+timer < getTimer()) {
          delete timer;
          _root.forside.end_alpha = 0; //fade til 0;
        }
    }
}
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 14:32 #3
Kan ikke få det til at virke!!
- MC'et vises - skulle være skjult!
- MC'et skjules ikke efter de 20 sek.!
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 14:35 #4
ok prøver lige det nye script!
Avatar billede barklund Nybegynder
24. juni 2002 - 14:37 #5
Teføli... der skal jo være 2 lighedstegn:

onClipEvent (load) {
    fade_step = 5; //hastighed til fade
}
onClipEvent (enterFrame) {
    if (_alpha != end_alpha) { //skal vi fade?
        _alpha += ( _alpha>end_alpha ? 1 : -1 )*fade_step;
    }
    else if (_root.forside._alpha == 100) {
        if (!timer) timer = getTimer();
        if (timer && 20*1000+timer < getTimer()) {
          delete timer;
          _root.forside.end_alpha = 0; //fade til 0;
        }
    }
}
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 14:59 #6
Kan stadig ikke få det til at virke!!
MC'et vises med det samme, og det skjules ikke igen!!
Avatar billede barklund Nybegynder
24. juni 2002 - 15:08 #7
Har du givet det instance-navnet "forside"?
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 15:12 #8
Jeg har nu prøvet at oprette et helt nyt dokument.
og har prøvet med det allerførste script du skrev - så forsvinder MC'et med det samme igen!!
Avatar billede mat Nybegynder
24. juni 2002 - 15:15 #9
hrm hrm > barklund, er du ikke kommet til at vende et andenæb forkert?!?


_alpha += ( _alpha<end_alpha ? 1 : -1 )*fade_step;


..eller?
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 15:18 #10
onClipEvent (enterFrame) {
    if (_root.forside._alpha == 100 && !timer) {
        timer = getTimer();
    }
    if (timer && 20*1000+timer<getTimer()) {
        delete timer;
        _root.forside._alpha = 0;
    }
}
Har fået det til at virke med dette script!!
prøver lige med fade!
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 15:25 #11
nu fungere fade scriptet også næsten (med mat's rettelse)!
onClipEvent (load) {
    fade_step = 5;
    // hastighed til fade
}
onClipEvent (enterFrame) {
    if (_alpha != end_alpha) {
        // skal vi fade?
        _alpha += (_alpha<end_alpha ? 1 : -1)*fade_step;
    } else if (_root.forside._alpha == 100) {
        if (!timer) {
            timer = getTimer();
        }
        if (timer && 20*1000+timer<getTimer()) {
            delete timer;
            _root.forside.end_alpha = 0;
            // fade til 0;
        }
    }
}
Det eneste der er nu er at når det fader ud igen står det og småblinker!
Avatar billede barklund Nybegynder
24. juni 2002 - 15:28 #12
Dette har jeg lige testet:

onClipEvent (load) {
    fade_step = 5;
}
onClipEvent (enterFrame) {
    if (typeof(real_alpha) == "undefined") {
        real_alpha = end_alpha = _alpha;
    }
    if (_alpha != end_alpha) {
        real_alpha += (_alpha>end_alpha ? -1 : 1)*fade_step;
        _alpha = real_alpha;
    } else if (_root.forside._alpha == 100) {
        if (!timer) {
            trace("newtimer");
            timer = getTimer();
        }
        if (timer && 20*1000+timer<getTimer()) {
            delete timer;
            _root.forside.end_alpha = 0;
        }
    }
}


Jeg havde glemt, at flash håndterer inkrementering af _alpha-property mærkeligt... (_alpha+1 != ++_alpha)

/Barklund
Avatar billede barklund Nybegynder
24. juni 2002 - 15:29 #13
Og jo - uligheden var gal... hvilket en lige trace hurtigt afslørede...
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 15:33 #14
nu virker det fint!!!!
en sidste ting, hvordan ændrer jeg scriptet så det ikke fader ind, men kun ud?

P.S. du sige til hvis pointene slår til!
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 15:33 #15
...du må sige......
Avatar billede thomasclausen Nybegynder
24. juni 2002 - 15:45 #16
......pointene ikke slår.......

Jeg skal til at vænde mig til at læse det jeg skriver før jeg sender det!!
Avatar billede barklund Nybegynder
24. juni 2002 - 15:59 #17
onClipEvent (load) {
    fade_step = 5;
}
onClipEvent (enterFrame) {
    if (typeof(real_alpha) == "undefined") {
        real_alpha = end_alpha = _alpha;
    }
    if (_alpha != end_alpha) {
        real_alpha += (_alpha>end_alpha ? -1 : 1)*fade_step;
        _alpha = real_alpha;
    } else if (_root.forside._alpha == 100) {
        if (!timer) {
            trace("newtimer");
            timer = getTimer();
        }
        if (timer && 20*1000+timer<getTimer()) {
            delete timer;
            end_alpha = _alpha = real_alpha = 0;
        }
    }
}

Og pointene er mere end rigeligt...

/Barklund
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