Avatar billede donslund Nybegynder
15. juni 2004 - 08:49 Der er 26 kommentarer og
1 løsning

Show/hide mus

Jeg har et antal mc's som skal reagere på nedenståënde kode.

OnClipEvent (enterframe) {
if (hitTest(_root._xmouse, _root._ymouse, false)) {
setProperty(mc, _x, _root._xmouse);
setProperty(mc, _y, _root._ymouse);
Mouse.hide();
} else {
setProperty(mc, _x, -200);
setProperty(mc, _y, -200);
Mouse.show();
}

Men det med musen virker kun på 1 ud af 5 movieclips.
Avatar billede _k Nybegynder
15. juni 2004 - 09:47 #1
Det er fordi du kun må have ét mc med instancenavnet "mc". Kald dine mc'er noget andet (f.eks. mc1, mc2, mc osv), og kyl denne lidt mere up to date kode på hver af dem: (setProperty er et levn fra dengang ingen endnu havde hørt om boybands og Rommedhal på fløjen!). Er det forresten den effekt du leder efter?

if (hitTest(_root._xmouse, _root._ymouse, false)) {
  this._x = _root._xmouse;
  this._y = _root._ymouse;
  Mouse.hide();
} else {
    Mouse.show();
}
Avatar billede donslund Nybegynder
15. juni 2004 - 10:06 #2
Men mine mc'c skal vises hvis musen er over et bestemt felt. Og væk når musen fjernes.
Og selvfølgelig har mine mc's seperate navne ;-)
Avatar billede donslund Nybegynder
15. juni 2004 - 10:36 #3
Problemet er, at når en mc ikke aktiveres, så vil den jo sige Mouse.show(). Derfro vises musen vel hele tiden.
Avatar billede _k Nybegynder
15. juni 2004 - 10:45 #4
Jeg skal vist lige ha' det helt på plads. Du vil ha' at musen forsvinder og alle dine mc'er bliver synlige når du er inde over et bestemt mc? Altså ér mc som styrer alle andre mc'er?
Eller er det når musen er inde over bare ét af dine mange mc'er at den musen skal forsvinde? (og skal man så kunne dragge rundt på det mc man er ovenover?)
...forklar, forklar.....
Avatar billede donslund Nybegynder
15. juni 2004 - 10:51 #5
Jeg har et antal felter hvor der, når musen er over, skal vises en faktaboks. Musen skal da væk da den generer læsningen. Når faktaboksen forsvinder skal musne komme igen.
Avatar billede _k Nybegynder
15. juni 2004 - 10:53 #6
Én faktaboks, eller en faktaboks til hvert felt?
Avatar billede donslund Nybegynder
15. juni 2004 - 10:55 #7
En faktaboks til hvert felt.
Avatar billede _k Nybegynder
15. juni 2004 - 11:17 #8
Hvorfor bruger du så ikke onRollOver og onRollOut i stedet?

Kald dine mc'er mc1, mc2, mc3 osv. og kald dine faktabokse fakta1, fakta2, fakta3 osv.

Gør dine faktabokse usynlige med:
fakta1._visible = false;
fakta2._visible = false;

Smid så denne her kode på hver af dine "mc" mc'er:
on(rollOver) {
  Mouse.hide();
  eval("_parent.fakta" + this._name.substring(2, this._name.lenght))._visible = true;
}
on(rollOut) {
  Mouse.show();
  eval("_parent.fakta" + this._name.substring(2, this._name.lenght))._visible = false;
}
Avatar billede donslund Nybegynder
15. juni 2004 - 11:37 #9
Skal fakta1._visible = false; skrives på faktaboksene eller hvor?
Avatar billede _k Nybegynder
15. juni 2004 - 11:48 #10
Det skal du skrive på main timeline.

Du kan også smide det på faktaboksen, men så skal den smides ind i en onClipEvent:

onClipEvent(load) {
  this._visible = false;
}
Avatar billede donslund Nybegynder
15. juni 2004 - 12:36 #11
on(rollOver) er kun tilladt for knapper påstår den.
Avatar billede _k Nybegynder
15. juni 2004 - 13:08 #12
Hvilken version af Flash sidder du da med? I MX og MX 2004 må man nemlig gerne putte button-instances på mc'er.

...ellers: er der nogen grund til at dine mc'er ikke må laves om til knapper?
Avatar billede donslund Nybegynder
15. juni 2004 - 15:03 #13
Jeg sidder med Flash MX. Men jeg får fejl i output vinduet når jeg vil teste min fil.
Avatar billede _k Nybegynder
15. juni 2004 - 15:07 #14
...og du putter scriptet direkte på dit mc? (og det ER et mc og ikke en graphic?)
Avatar billede donslund Nybegynder
15. juni 2004 - 15:08 #15
Scene=Scene 1, Layer=Layer 2, Frame=5: Line 1: Mouse events are permitted only for button instances
    on (rollOver) {

Scene=Scene 1, Layer=Layer 2, Frame=5: Line 5: Mouse events are permitted only for button instances
    on (rollOver) {
Avatar billede donslund Nybegynder
15. juni 2004 - 15:15 #16
Ja. Jeg tryker én gang på eks. Mc1 og skriverefter koden i ActionScript-vinduet.
Avatar billede _k Nybegynder
15. juni 2004 - 15:20 #17
Så er jeg helt på bar bund, for det burde virke.

Prøv evt. at lave dit mc om til en knap.
Avatar billede _k Nybegynder
15. juni 2004 - 15:25 #18
..det kan forresten være at du gemmer til en ældre version end MX. Prøv at se hvad der står i vinduet når du vælger file-save as
Avatar billede donslund Nybegynder
15. juni 2004 - 15:33 #19
Se se. Der tror jeg du har ret. Jeg får i hvert fald i samme fejlmeddelelse når jeg publisher til Flash 6 i stedet for Flash 5 :-)

Men faktaboksen vises ikke alligevel. Jeg ser lige om der skulle være en lille smutter.
Avatar billede donslund Nybegynder
15. juni 2004 - 16:01 #20
Nej, jeg kan ikke finde problemet. Den skjuler dem godt nok, men kommer ikke frem ved rollOver. Er der noget der kan modarbejde hinanden?
Avatar billede _k Nybegynder
15. juni 2004 - 16:22 #21
Hvis du har givet dem instansnavnene "fakta1", "fakta2" osv. skulle der ikke være noget bøvl.

Men prøv evt. at erstatte "_parent" med "_root" i koden. Ellers test ved at lave en knap, hvor du skriver:
on(press) {
  _root.fakta1._visible = true;
}
Avatar billede donslund Nybegynder
15. juni 2004 - 16:27 #22
Det med knappen virkede fint. Men det nytter ikke noget at ændre _parent til _root.
Avatar billede _k Nybegynder
15. juni 2004 - 16:48 #23
Har du så prøvet med test-knappen? Ligger dine faktabokse i en helt anden level? (inde i et mc f.eks.).

Virker testknappen?
Avatar billede donslund Nybegynder
15. juni 2004 - 22:00 #24
Ja knappen med:

on(press) {
  _root.fakta1._visible = true;
}

virkede helt perfekt.
Avatar billede donslund Nybegynder
15. juni 2004 - 22:15 #25
Hvis jeg tracer på den:

eval("_root.fakta" + this._name.substring(2, this._name.length))._visible = true;
    trace (eval("_root.fakta" + this._name.substring(2, this._name.length)));

giver den: _level0.fakta2
Avatar billede donslund Nybegynder
15. juni 2004 - 22:32 #26
Jeg har fået det til at virke. Det var "desværre" min fejl. En trælst rollOver i stedet for rollOut. Undskyld ulejligheden.

Smider du et svar?
Avatar billede _k Nybegynder
16. juni 2004 - 09:25 #27
Lyder godt at du har knækket nødden :)
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