Avatar billede eltempogigante Nybegynder
18. februar 2006 - 01:18 Der er 2 kommentarer og
2 løsninger

Umiddelbart enkel menu som alligevel er kompleks?

Jeg vil gerne lave en menu der kommer frem via "onMouseOver", der skal så i denne menu være emner man kan klikke på.

Det skal være sådan at menuen trækker sig tilbage når man har valgt et emne. Det skal også være sådan at menuen trækker sig tilbage hvis ikke man vælger noget og så at sige "mouse-outer" igen.

Umiddelbart meget simpelt, men når jeg forsøger mig bliver de forskellige mouse-over/outs/onreleases fuldstændigt i kudret ind i hinanden. Således at et "onMouseOver" menu-emne pludselig får menuen til at forsvinde fordi flash registerer dette som et mouseout fra selve menuen.

Det vil også være et problem at når man så har valgt et menu-emne så vil menuen ikke forsvinde igen fordi den registrerer et mouse-over når den trækker sig tilbage.

Animationen skal forgå via tweening-kode og ikke timeline-animation.

Egentlig skal menuen bare fungere som den gør i venstre side på denne hjemmeside:

http://www.jthompsonphoto.com/
Avatar billede eltempogigante Nybegynder
18. februar 2006 - 14:07 #1
Her er min egen løsning, men er den god? Kan det gøres på en smartere måde?

//KODE-------------------------------------------------

// TWEENING ENGINE - - - - - - - - - -
#include "lmc_tween.as"
slideOn();
// SLIDE ON SYSTEM - - - - - - - - - -
function slideOn() {
    test.onMouseMove = function() {
        if ((test._ymouse>=test.goSlide._y) && (test._ymouse<=test.goSlide._y+test.goSlide._height) && (test._xmouse>=test.goSlide._x) && (test._xmouse<=test.goSlide._x+test.goSlide._width)) {
            trace("on");
            test.tween("_y", 50, 1, "easeOutExpo", 0);
            delete test.onMouseMove;
            slideOff();
        }
        updateAfterEvent();
    };
}
// SLIDE OFF SYSTEM - - - - - - - - - -
function slideOff() {
    _root.onMouseMove = function() {
        if ((_root._ymouse>=test._y) && (_root._ymouse<=test._y+test._height) && (_root._xmouse>=test._x) && (_root._xmouse<=test._x+test._width)) {
        } else {
            test.tween("_y", -50, 1, "easeOutExpo", 0);
            trace("off");
            delete _root.onMouseMove;
            slideOn();
        }
        updateAfterEvent();
    };
}
// MENU ITEMS - - - - - - - - - -
test.button1.onRelease = function() {
    delete _root.onMouseMove;
    test.tween("_y", -50, 1, "easeOutExpo", 0, slideOn);
};

//KODE-------------------------------------------------

Her er links til swf- og fla-filen:

http://web.gvdnet.dk/GVD003144/slidetest.swf

http://web.gvdnet.dk/GVD003144/slidetest.fla
Avatar billede cleecer Nybegynder
18. februar 2006 - 23:32 #2
#include "lmc_tween.as" mangler !
Avatar billede eltempogigante Nybegynder
19. februar 2006 - 02:16 #3
"lmc_tween.as" er en tweening class der kan hentes og indstalleres som en extension til Flash fra:

http://laco.wz.cz/tween/

Jeg synes den er langt bedre en Flashes indbyggede tweening class.
Avatar billede eltempogigante Nybegynder
21. februar 2006 - 21:32 #4
Øv nå, den virker jo også fint alligevel!
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