Avatar billede visualsoft Nybegynder
24. oktober 2004 - 15:15 Der er 17 kommentarer

Mus over objekt tjek

Hej,

er der i flash en funktion eller noget, som man kan tjekke om musen lige nu er over MC_abc ?
Avatar billede pyroman Nybegynder
24. oktober 2004 - 15:32 #1
this.onEnterFrame = function(){
  if(MC_abc.hitTest(_root._xmouse, _root._ymouse, true)){
    trace("musen er over MC_abc");
  }
}

sådan?
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 15:58 #2
Ser godt ud! Jeg tester det lige lidt senere, jeg er ikke hjemme ved min egen computer lige nu.

Efter hvordan jeg tolker det, så skulle det gerne gøre som jeg ønsker, så du må gerne få dine point nu!
Avatar billede _k Nybegynder
24. oktober 2004 - 16:23 #3
Hvorfor ikke bare: MC_abc.onRollOver = function() { trace("musen er over") }; ??
Avatar billede pyroman Nybegynder
24. oktober 2004 - 16:45 #4
Joo det kunne man også - så skal man bare huske at fjerne hånden med

MC_abc.useHandCursor = false;
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 17:11 #5
jeg holder på pyromans løsning
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 17:17 #6
Fordi det andet ikke løser det problem som jeg har, men tak alligevel. Smid lige et svar
Avatar billede _k Nybegynder
24. oktober 2004 - 17:35 #7
Rent programmeringsmæssigt er onRollOver en bedre løsning end at starte en onEnterFrame om lade den stå og tikke konstant imens filmen kører. Imidlertid er det ikke noget problem hvis du ikke har en masse andre onEnterFrames kørende eller flytter rundt på en masse anden grafik.

(og tror forresten nok at begge løsninger klarer dit problem, da de gør præcis det samme ;o)
Avatar billede pyroman Nybegynder
24. oktober 2004 - 18:07 #8
I nogle tilfælde bliver man nødt til at bruge hitTest i stedet for onRollOver, da man i tilfælde af at man har flere knapper ovenpå hinanden ikke får den ønskede effekt.

Men hvis jeg ikke i forvejen havde en onEnterFrame funktion, så ville jeg nok bruge denne:

var mouseListener = new Object();
mouseListener.onMouseMove = function(){
  if(MC_abc.hitTest(_root._xmouse, _root._ymouse, true))
    trace("musen er over MC_abc");
}
Mouse.addListener(mouseListener);
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 18:25 #9
Præcis det der er problemet pyroman ;) nå, men smid et svar
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 18:38 #10
hov forresten, nu er jeg jo newb, så hvad er der galt med dette:

onClipEvent (enterFrame) {
    if(rollOut_home.hitTest(_root._xmouse, _root._ymouse, true)){
        this.onRollOut = function() {
            this._parent.gotoAndPlay(1);
        };
        this.onPress = function() {
            this._parent.gotoAndPlay(22);
        };
    }
   
    else {
        this._parent.gotoAndPlay(1);
    }
}



Det er sikkert et eller andet latterligt :P
Avatar billede _k Nybegynder
24. oktober 2004 - 19:37 #11
Det script du har smidt er i mine øjne lidt "sort". Hvorfor virker det her ikke: (forklar evt. hvad det er du vil)

rollOut_home.onRollOver = function() {
    this.gotoAndStop(2);
    }
rollOut_home.onRollOut = function() {
    this.gotoAndStop(1);
    }
rollOut_home.onPress = function() {
    trace("Du trykkede på knappen");
    }
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 19:49 #12
ok. Ja.

onClipEvent (enterFrame) {
        this.onRollOut = function() {
            this._parent.gotoAndPlay(1);
        };
        this.onPress = function() {
            this._parent.gotoAndPlay(22);
        };
}

Sådan var det fra starten. Så skal vi have sat den ting der ind, så hvis musen ER over MC'et, så går den videre til de to ting der, men ellers så skal den bare sendes til frame et, og stoppe der. Forstår du?
Avatar billede _k Nybegynder
24. oktober 2004 - 19:58 #13
Det er dårlig stil at smide en onRollOver og onPress ind i en enteFrame. Du behøver kun at sætte scriptet på en knap én gang.

Kan godt være jeg er lidt tykpandet, men jeg forstår ikke hvorfor den kode jeg smed ovenfor ikke løser problemet? Har du ikke et mc der fungerer som knap som du vil lave noget på, når tilstanden er:
- musen er over knappen
- musen føres væk fra knappen
- der trykkes på knappen

Kan du ikke specificere hvad det er du vil. Ellers snakker vi sikkert bare forbi hinanden.
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 20:48 #14
Jeg ved ikke hvorfor det sker. Med en knap virker det ganske fint, den kode jeg har, men når jeg laver flere og kører musen ned igennem rækken af knapper, så bliver de VED med at stå sådan som om musen er over dem! Hvis jeg kører langsomt går det fint, men så snart jeg ræser ned igennem, så går det galt.

Jeg ved faktisk ikke om det skal løses sådan her overhovedet :P
Avatar billede pyroman Nybegynder
24. oktober 2004 - 22:33 #15
prøv som _k foreslår:

rollOut_home.onRollOver = function() {
    this.gotoAndStop(2);
}
rollOut_home.onRollOut = function() {
    this.gotoAndStop(1);
}
rollOut_home.onPress = function() {
    trace("Du trykkede på knappen");
}

det andet giver ikke særlig meget mening...
Avatar billede visualsoft Nybegynder
24. oktober 2004 - 22:38 #16
Hvor skal jeg putte det hen?
Avatar billede _k Nybegynder
25. oktober 2004 - 09:05 #17
Du skal smide det ind i en tom frame på den tidslinje hvor din "rollOut_home" befinder sig. Har du flere knapper, så kald dem noget andet end "rollOut_home" og gentag scriptet med de nye navne.
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