Avatar billede jenz42 Nybegynder
23. februar 2005 - 20:09 Der er 7 kommentarer

Gå til frame 1 ved rollout af "stage"

Jeg har en menu, med undermenuer. Jeg ønsker at menuen skal "tilbage til start" ved rollout af stage'en, evt. med en 10 pixels inde hele vejen rundt.

Jeg har fosøgt mig med en stor usynlig knab, der ligger nederst, men den opfatter en rollover på en overliggende knab som et rollout, og det konflikter.

Kan man lave det med mouse trace, og i såfald hvordan?
Eller er der andre forslag?
Avatar billede jenz42 Nybegynder
23. februar 2005 - 20:10 #1
Jeg vil også gerne have en staveplade.
Avatar billede _k Nybegynder
24. februar 2005 - 09:49 #2
Smid en adresse og jeg sender en staveplade med posten ;o)

Den nemme løsning kunne være at lave en 10 px knap hele vejen rundt i kanten af din stage og kalde onRollOver på den. Det er naturligvis ikke det fedeste for folk med digitizere og løsningen er ikke 100% skudsikker med mus - hvis man bevæger den vildt hurtigt, bliver onRollOver ikke kaldt. Men det var en ofte set løsning i pre-MX æraen.

En anden løsning er, som du selv er inde på, at smide et tjek ned i en onEnterFrame eller en onMouseMove, der kigger på om musen er inde på stagen. Vælger du ikke den første løsning, så sig til, så er det ikke utænkeligt at jeg i løbet af dagen får tid til at skrue sådan en sammen.... (jeg har nemlig på fornemmelsen at det kræver en smule motionering af de små grå for at få den til at virke optimalt)
Avatar billede jenz42 Nybegynder
25. februar 2005 - 08:55 #3
Jeg prøver lige den første. Det var egentlig smart. Jeg siger til, hvis det ikke virker godt nok.

Venlig hilsen Jens
Avatar billede jenz42 Nybegynder
25. februar 2005 - 09:49 #4
OK, det fungerer. Men det er et for stort problem at man kan bevæge musen henover knappen hurtigt, uden der sker noget. Det sker mist hver anden gang i test, selvom frameraten er 30.

Det ville være monster kewl, hvis du kunne skrue noget optimal kode sammen.
På forhånd tak.
Avatar billede _k Nybegynder
26. februar 2005 - 09:36 #5
Det kunne sikkert laves lidt mere smart, men prøv om den her gør det:

var kant:Number = 10; // bredden på kanten
this.onMouseMove = function() {
    // Hvis musen er enten til højre eller venstre for stage
    if(this._xmouse < kant || this._xmouse > (Stage.width - kant)) {
        trace("udenfor x");
                // goto et eller andet
    }
    // Hvis musen er ovenfor eller nedenfor stagen
    else if(this._ymouse < kant || this._ymouse > (Stage.height - kant)) {
        trace("udenfor y");
                // goto et eller andet
    }
    else {
        // Alt er ok
    }
}
Avatar billede jenz42 Nybegynder
28. februar 2005 - 12:45 #6
Det virker ikke, og jeg skal ikke kunne sige hvorffor. Muligvis kager jeg rundt i det på en eller anden måde.

Smid et svar, så jeg kan give points.

Vh Jens
Avatar billede _k Nybegynder
28. februar 2005 - 13:23 #7
Lægger gerne et svar, men vi må da hellere få det til at virke?

Smider du scriptet i en frame? Og bliver der slet ikke tracet noget ud i output vinduet? (du kan forresten i Flash minimere vinduet ved at klikke på "de to firkanter" ved siden af krydset oppe i højre hjørne - på den måde simulerer Playeren den aktuelle størrelse på filmen)
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